Chinaunix首页 | 论坛 | 博客
  • 博客访问: 243131
  • 博文数量: 164
  • 博客积分: 60
  • 博客等级: 民兵
  • 技术积分: 1129
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-09 21:55
文章分类

全部博文(164)

文章存档

2017年(2)

2015年(67)

2014年(95)

我的朋友

分类: Java

2015-01-08 22:41:13

作用:使原本由于接口不兼容而不能一起工作的类可以一起工作。


1 客户端原来的接口

点击(此处)折叠或打开

  1. package cn.javass.dp.adapter.example1;
  2. /**
  3.  * 已经存在的接口,这个接口需要被适配
  4.  */
  5. public class Adaptee {
  6.     /**
  7.      * 示意方法,原本已经存在,已经实现的方法
  8.      */
  9.     public void specificRequest() {
  10.         //具体的功能处理
  11.     }
  12. }

2 客户端要使用的新接口(目标接口)

点击(此处)折叠或打开

  1. package cn.javass.dp.adapter.example1;
  2. /**
  3.  * 定义客户端使用的接口,与特定领域相关
  4.  */
  5. public interface Target {
  6.     /**
  7.      * 示意方法,客户端请求处理的方法
  8.      */
  9.     public void request();
  10. }

3  适配器(将原来的接口适配新的接口)

点击(此处)折叠或打开

  1. package cn.javass.dp.adapter.example1;
  2. /**
  3.  * 适配器
  4.  */
  5. public class Adapter implements Target {
  6.     /**
  7.      * 持有需要被适配的接口对象
  8.      */
  9.     private Adaptee adaptee;
  10.     /**
  11.      * 构造方法,传入需要被适配的对象
  12.      * @param adaptee 需要被适配的对象
  13.      */
  14.     public Adapter(Adaptee adaptee) {
  15.         this.adaptee = adaptee;
  16.     }

  17.     public void request() {
  18.         //可能转调已经实现了的方法,进行适配
  19.         adaptee.specificRequest();
  20.     }
  21. }

4 客户端使用适配器例子

点击(此处)折叠或打开

  1. package cn.javass.dp.adapter.example1;
  2. /**
  3.  * 使用适配器的客户端
  4.  */
  5. public class Client {    
  6.     public static void main(String[] args) {
  7.         //创建需被适配的对象
  8.         Adaptee adaptee = new Adaptee();
  9.         //创建客户端需要调用的接口对象
  10.         Target target = new Adapter(adaptee);
  11.         //请求处理
  12.         target.request();

  13.     }
  14. }


阅读(544) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~