Java经典设计模式-结构型模式-适配器模式(Adapter)
2018-01-20 00:00
691 查看
适配器模式
适配器模式主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。有点抽象,我们来看看详细的内容。
1.1、类的适配器模式
类的适配器模式核心思想就是:有一个Source类,拥有一个方法,待适配,目标接口是Targetable,通过Adapter类,将Source的功能扩展到Targetable里。
package com.model.structure; public class Source { public void method1() { System.out.println("this is original method!"); } }
package com.model.structure; public interface Targetable { /* 与原类中的方法相同 */ public void method1(); /* 新类的方法 */ public void method2(); }
package com.model.structure; public class Adapter extends Source implements Targetable { public void method2() { System.out.println("this is the targetable method!"); } }
package com.model.structure; public class AdapterTest { public static void main(String[] args) { Targetable target = new Adapter(); target.method1(); target.method2(); } }
AdapterTest的运行结果:
1.2、对象的适配器模式
对象的适配器模式的基本思路和类的适配器模式相同,只是将Adapter类作修改成Wrapper,这次不继承Source类,而是持有Source类的实例,以达到解决兼容性的问题。
package com.model.structure; public class Wrapper implements Targetable { private Source source; public Wrapper(Source source) { super(); this.source = source; } @Override public void method2() { System.out.println("this is the targetable method!"); } @Override public void method1() { source.method1(); } }
package com.model.structure; public class AdapterTest { public static void main(String[] args) { Source source = new Source(); Targetable target = new Wrapper(source); target.method1(); target.method2(); } }
运行结果跟类的适配器模式例子的一样。
1.3、接口的适配器模式
接口的适配器是这样的:有时我们写的一个接口中有多个抽象方法,当我们写该接口的实现类时,必须实现该接口的所有方法,这明显有时比较浪费,因为并不是所有的方法都是我们需要的,有时只需要某一些,此处为了解决这个问题,我们引入了接口的适配器模式,借助于一个抽象类,该抽象类实现了该接口,实现了所有的方法,而我们不和原始的接口打交道,只和该抽象类取得联系,所以我们写一个类,继承该抽象类,重写我们需要的方法就行了。
这里看文字描述已经试够清楚的了,因此就不贴代码实例了。
相关文章推荐
- JAVA设计模式(6) —<结构型>适配器模式(Adapter)
- Java经典23种设计模式之结构型模式(三)------附代理模式、适配器模式、外观模式区别
- Java设计模式之适配器模式Adapter(结构型)
- Java设计模式之结构型模式-适配器模式(Adapter)
- Java设计模式(7)——结构型模式之适配器模式(Adapter)
- 设计模式(六)适配器模式(Adapter)-结构型
- 【设计模式学习笔记七】【结构型模式】【适配器模式(Adapter)】
- java设计模式(7):适配器模式(Adapter)
- Java经典设计模式之七大结构型模式(附实例和详解)
- Java设计模式二十:适配器模式(Adapter)
- 设计模式--适配器模式Adapter(结构型)
- Java结构型设计模式——适配器模式、代理模式
- 设计模式 (10)——适配器模式(Adapter Pattern,结构型)
- 设计模式 一 适配器模式 Adapter(结构型模式)
- Java设计模式 结构模式-适配器模式(Adapter)
- 设计模式(8)の结构型の适配器模式(Adapter)
- java设计模式---适配器模式(Adapter pattern)
- Java经典设计模式之七大结构型模式(附实例和详解)
- Java设计模式之适配器模式(Adapter)