java设计模式--适配器模式
2015-10-16 15:53
507 查看
概述:将一个类的接口转换成客户希望的另外一个接口。Adapter接口使得原本由于接口不兼容而不能在一起工作的类能够在一起工作。
适配器的实现方式分为两种:类的适配器模式和对象的适配器模式
(1)类的适配器模式
Adapter类的实现了Targer接口,继承了Adaptee类。
代码示例如下:
输出结果如下:
(2)对象的适配器模式
代码示例如下:
输出结果:
适配器的实现方式分为两种:类的适配器模式和对象的适配器模式
(1)类的适配器模式
Adapter类的实现了Targer接口,继承了Adaptee类。
代码示例如下:
package cnic.cn.interf; public interface Target { void request(); }
package cnic.cn.impl; import cnic.cn.interf.Target; public class TargetImpl implements Target { public void request() { System.out.println("This is TargetImpl class..."); } }
package cnic.cn.impl; public class Adaptee { public void specificRequest(){ System.out.println("This is specificRequest class..."); } }
package cnic.cn.impl; import cnic.cn.interf.Target; public class Adapter extends Adaptee implements Target { public void request() { super.specificRequest(); } }
package cnic.cn.impl; import cnic.cn.interf.Target; public class Client { public static void main(String[] args) { Target target001 = new TargetImpl(); target001.request(); //通过适配器Adapter,Adaptee中的方法得到了应用 Target target002 = new Adapter(); target002.request(); } }
输出结果如下:
This is TargetImpl class... This is specificRequest class...
(2)对象的适配器模式
代码示例如下:
package cnic.cn.interf; public interface Target { void request(); }
package cnic.cn.impl; import cnic.cn.interf.Target; public class TargetImpl implements Target { public void request() { System.out.println("This is TargetImpl class..."); } }
package cnic.cn.impl; public class Adaptee { public void specificRequest(){ System.out.println("This is specificRequest class..."); } }
package cnic.cn.impl; import cnic.cn.interf.Target; public class Adapter implements Target{ private Adaptee adaptee; public Adapter(Adaptee adaptee) { this.adaptee = adaptee; } public void request() { this.adaptee.specificRequest(); } }
package cnic.cn.impl; import cnic.cn.interf.Target; public class Client { public static void main(String[] args) { Target target001 = new TargetImpl(); target001.request(); //注入一個adaptee對象 Target target002 = new Adapter(new Adaptee()); target002.request(); } }
输出结果:
This is TargetImpl class... This is specificRequest class...
相关文章推荐
- Spring 3.0 注解注入详解
- MyEclipse快捷键大全
- Java io详解(-)
- 基于JDK 8的Dubbo Admin
- 比较Java数组,ArrayList,LinkedList,Vector 性能比较
- Maven管理java工程
- Eclipse 设置一行代码宽度
- Java学习篇之---Spring Scope prototype与singleton区别
- JAVA中异常处理小结
- 从0开始学java——JSP&Servlet——web容器搜索class的路径顺序
- eclipse 中设置注释模板
- spring 监听器 IntrospectorCleanupListener
- struts2在加载首页是访问action
- JPA——管理实体
- java通过JDBC驱动连接操作hive实例
- Java基础知识学习(七)
- java 代理的作用 因素 以及对代理的理解
- 7、struts.xml包含其他其他配置文件(xx.xml)
- 6.在struts.xml中配置默认的action,也就是主页
- 深入详解Struts2——struts.xml配置详解(一)