易截截图软件、单文件、免安装、纯绿色、仅160KB

Java设计模式(三)Adapter(适配器),Bridge(桥接)

 结构模式(-)
Adapter(适配器)
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
Adapter分为2种:
类适配器和对象适配器。Adapter和Adaptee之间是is-a关系的时候,属于类适配器,Adapter和Adaptee之间是has-a关系的时候,属于对象适配器。
基于“当涉及到依存性时,应当始终优先选择组合/成员关系而不是继承”的设计原则,并且由于多继承在使用上的复杂性,及在部分情况下不可行等原因,对象适配器优先于类适配器
使用场景
1 你想使用一个已经存在的类,但他的接口不符合你的需求。
2 你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。
3 你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配他们的接口。对象适配器可以适配它的父类接口。
主要参与者
Target
:决定要用什么方法
public interface Target {
   public void request();
}
Adaptee
:提交最初的方法
public class Adaptee {
   
public void requestSpecial(){
       //处理一些额外的请求
   
}
}
Adapter
:用Adaptee去实现Target的方法
public class Adapter extends Adaptee implements Target{
@Override
  
// 这里用的是类Adapter模式,采用了多重继承
  
public void request() {
  
// TODO Auto-generated method stub
  
super.requestSpecial();
  
}
}
Client:
使用Target的方法
public class Client {
 
public static void main(String[] args) {
   
Target t = new Adapter();
    t .request();
  
}
}
以上是类适配器,下面是对象适配器
对象适配器与类适配器的区别在于如何实现Target所需要的方法,类适配器是继承而对象适配器是委托
Adapter
:用Adaptee去实现Target的方法
public class Adapter implements Target{
    private Adaptee adaptee;
    public Adapte(Adaptee adaptee){
        this.adaptee =  adaptee;
    }
  
@Override


相关文档:

java入门

 Java学习从入门到精通 
一、 JDK (Java Development Kit) 
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......

java路径

import java.io.File;
/**
* @description <p>java 路径</p>
* @author swandragon
* @date Nov 5, 2009
*/
public class FilePath{
/**
* 开发中不要使用System.getProperty("user.dir")获取当前用户目录的相对路径
* 也尽可能不要使用绝对路径,使用绝对路径时可以在配置文件中 ......

java 中进度条的使用

一般进度条使用是给用户一种友好提示,让用户感觉这个事情正在做,而不是系统没有反应了;
JProgressBar的代码文档大家可以参考JDK1.6,比如构造函数有哪些,常用的方法有哪些在此就不多叙述;
一般使用情况是,点击按钮是做一件事情,比如备份,进度条出现并增加进度表示正在进行或到什么程度,事情结束时,进度条显示满 ......

java上传文件实例

 package com.yc.eap.util;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.common ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号