适配器模式:
将一个类的接口转换成客户希望的另外一个接口,Adapter模式使得原本不兼容的类可以一起工作。
类图:
角色:
-目标接口:Target 客户所期待的接口,目标可以是具体的或者抽象的类也可以是接口
-需要适配的类Adaptee:
-适配器 Adapter:通过包装一个需要适配的对象,把原接口转换成目标接口。
实例:
package adapter;
2
3 public interface ITarget {
4 void handleReq();
5 }
6
7 package adapter;
8
9 /**
10 * 被适配的类
11 * (相当于例子中的,PS/2键盘)
12 * @author Administrator
13 *
14 */
15 public class Adaptee {
16 public void request(){
17 System.out.println("可以完成客户请求的需要的功能!");
18 }
19 }
20
21 package adapter;
22
23 /**
24 * 适配器 (类适配器方式)
25 * (相当于usb和ps/2的转接器)
26 * @author Administrator
27 *
28 */
29 public class Adapter extends Adaptee implements ITarget {
30
31 @Override
32 public void handleReq() {
33 // TODO Auto-generated method stub
34 super.request();
35 }
36
37 }
package adapter;
2
3 public class Client {
4
5 public void test1(ITarget t){
6 t.handleReq();
7 }
8 public static void main(String[] args) {
9 // TODO Auto-generated method stub
10 Client client = new Client();
11 Adaptee adaptee = new Adaptee();
12 ITarget target = new Adapter2(adaptee);
13 client.test1(target);
14 }
15
16 }
工作中的场景:
--经常用来做旧系统改造和升级
--如果我们的系统开发之后再也不需维护,那么很多模式都是没有必要的。
--InputStreamReader(InputStream)
--OutputStreamWriter(OutputStream)