一天学习一个设计模式之适配器模式

  系统的数据和行为都正确,但接口不符时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用希望用一些现存的类,但是接口又与复用环境不一致的情况。适配器模式讲了两种类型类适配器模式对象适配器模式。由于C#、java等语言不支持多重继承,也就是一个类只有一个父类,所以主要用的是对象适配器。

  

ITarget(这是客户所期待的接口。目标可以是具体的类或抽象的类,也可以是接口)代码如下:

public interface ITarget {
     void request();
}

Adaptee(需要适配的类)代码如下

public class Adaptee {
    public void specificRequest(){
        System.out.println("特殊请求");
    }
}

Adapter(通过在内部包装一个Adaptee对象,把源接口转换成目标接口)代码如上

public class Adapter implements ITarget {
    private Adaptee adaptee=new Adaptee();
    @Override
    public void request() {
        adaptee.specificRequest();
    }
}

客户端代码如下

public class Client {
    public static void main(String[] args) {
        ITarget target=new Adapter();
        //对客户端而言就是调用的Target的Request方法
        target.request();
    }
}

何时使用适配器模式

  使用一个已经存在的类,但如果它的接口,也就是它的方法和你的要求不相同时,就应该考虑用适配器模式。

  两个类所做的事情相同或相似,但是具有不同的接口时要使用它。而且由于类都共享一个接口,使得客户代码如何?

  客户代码可以统一调用同一个接口,这样可以更简单、更直接、更紧凑。适配器模式属于“亡羊补牢”,适合于在代码的维护阶段,在双方都不太容易修改时再使用适配器模式进行适配。

         

原文地址:https://www.cnblogs.com/gousheng107/p/8000203.html