Java设计模式(7)——结构型模式之适配器模式(Adapter)
2017-10-28 17:42
821 查看
一、概述
概念其实,举个生活中的例子的话,适配器模式可以类比转接头,比如typeC和USB的转接头,把原本只能接typeC的接口,拓展为可以接普通USB;这里的转接头一方面需要查在typeC上,一方面需要作为USB插口。
如果要举个Java中的例子的话,不妨看看JDBC的章节介绍!下图为JDBC简略UML图(中间的xxx JDBC就是我们适配JDBC与各大数据库厂商的适配器了!)
简略图
类的适配器模式
对象的适配器模式(注意看类的关系,上面是继承,下面是委派)
二、实践
上面提到的转接头的例子,我们参考:http://www.cnblogs.com/V1haoge/p/6479118.html当然,此例和上述转接头的例子本质是一样的(只是根据功能把接口分开的写法),上例中实际调用的都是已有的接口,通过适配的形式来调用,我们实际使用时应当灵活运用!
类的适配,我们分别写出简略图中的角色即可
目标角色
/** * 目标接口 * 作者: Administrator * 日期: 2017/10/28 **/ public interface Target { /** * 目标操作1 */ void operation1(); /** * 目标操作2 */ void operation2(); }
源角色
/** * 源角色 * 作者: Administrator * 日期: 2017/10/28 **/ public class Adaptee { public void operation1(){ System.out.println("adaptee#opetion1()"); } }
适配器
/** * 适配器角色 * 作者: Administrator * 日期: 2017/10/28 **/ public class Adapter extends Adaptee implements Target{ @Override public void operation2() { System.out.println("adapter#operation2()"); } }
客户端使用
public class Client { public static void main(String[] args) { Target t = new Adapter(); t.operation2(); } }
对象的适配器我们看核心的适配器角色
适配器
/** * 适配器角色 * 作者: Administrator * 日期: 2017/10/28 **/ public class Adapter implements Target{ private Adaptee adaptee; public Adapter(Adaptee adaptee) { this.adaptee = adaptee; } @Override public void operation1() { adaptee.operation1(); } @Override public void operation2() { System.out.println("adapter#operation2()"); } }
三、改进与思考
缺省的适配器模式在JAVA中要实现一个接口,就要实现所有的抽象方法。但是有时候只想实现一部分方法,就可以使用一个抽象类来实现这个接口,然后提供“空实现”,这样我们只要继承这个类,重写需要的方法即可!
实际案例
相关文章推荐
- JAVA设计模式(6) —<结构型>适配器模式(Adapter)
- Java设计模式之适配器模式Adapter(结构型)
- Java设计模式之结构型模式-适配器模式(Adapter)
- Java经典设计模式-结构型模式-适配器模式(Adapter)
- Java结构型设计模式——适配器模式、代理模式
- C#设计模式之六适配器模式(Adapter Pattern)【结构型】
- Java设计模式二十:适配器模式(Adapter)
- Java设计模式之------(Adapter)适配器模式实现
- Java设计模式 - Adapter(适配器模式)
- Java设计模式之适配器模式(Adapter)
- java设计模式之六适配器模式(Adapter)
- Java设计模式——适配器模式(Adapter)
- .Net设计模式 Adapter 适配器模式(结构型模式)Adapter Pattern
- Java设计模式--适配器模式【Adapter Pattern】
- java设计模式(结构型)之适配器模式
- (6)Java设计模式-适配器模式(Adapter)
- Java设计模式——结构型模式——适配器模式
- 设计模式(8)の结构型の适配器模式(Adapter)
- java-设计模式(结构型)-【适配器模式】
- "围观"设计模式(11)--结构型之适配器模式(Adapter Pattern)