适配器模式(Adapter Pattern)
2017-12-19 17:33
274 查看
定义
将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够一起工作。代码实现
目标角色:public interface Target { //目标角色生产上已经稳定使用的接口 void request(); }
目标角色实现类:
public class ConcreteTarget implements Target { @Override public void request() { System.out.println("我是目标角色已经使用的接口"); } }
源角色:
public class Adaptee { public void doSomething() { System.out.println("源角色做了一些事情。。。"); } }
适配器类:
public class Adapter extends Adaptee implements Target { //适配器角色 public void request() { super.doSomething(); } }
场景类:
public static void main(String[] args) { //原有的业务逻辑 Target target = new ConcreteTarget(); target.request(); //增加了适配器角色之后的业务逻辑 target = new Adapter(); target.request(); }
优点
增加类的透明性,对高层次模块透明,他们只关心target目标对象。提高了类的复用度,源角色在原有的系统中还是可以正常使用,在目标角色中也可以充当新演员。
灵活性好, 不需要适配器,直接删掉就可以。
适用场景
比如系统扩展,需要使用一个已有或新建立的类,但是这个类又不符合系统的接口,那么适配器就是一个很好的选择。注意事项
适配器模式最好在详细设计阶段不要考虑它,主要用于已经投产的接口,扩展的时候使用。实践
在java.io中使用了适配器模式。如图所示,InputStream是源角色, Reader是目标角色, InputStreamReader是核心的适配器角色。
相关文章推荐
- 《Head First Design Patterns》笔记七:适配器模式(Adapter Pattern)
- Net设计模式实例之适配器模式(Adapter Pattern)
- 适配器模式(Adapter Pattern)
- 适配器模式-Adapter Pattern
- 设计模式 适配器模式(Adapter Pattern)
- 7.适配器模式(Adapter Pattern)
- 适配器模式-Adapter Pattern 不兼容结构的协调——适配器模式(三):类适配器,双向适配器
- 适配器模式(Adapter Pattern)
- 适配器模式(Adapter Pattern)
- 适配器模式(Adapter Pattern)
- Net设计模式实例之适配器模式(Adapter Pattern)
- Java设计模式之适配器模式(Adapter Pattern)
- 适配器模式(Adapter Pattern)
- 【设计模式】适配器模式(Adapter Pattern)
- 我所理解的设计模式(C++实现)——适配器模式(Adapter Pattern)
- java设计模式---适配器模式(Adapter pattern)
- 适配器模式(Adapter Pattern)--不兼容结果的协调
- 设计模式之四:适配器模式(Adapter Pattern)
- Php设计模式之【适配器模式 Adapter Pattern】
- C#设计模式——适配器模式(Adapter Pattern)