适配器模式(think in java中的设计模式)

适配器模式:适配器模式相对来说抽象一些,我曾经一度分不清楚他与策略模式,状态模式的区别,其实还是很简单的。

策略模式讲究的是放入一个对象的不同子类服务另外一个对象,主对象之中的属性放入另外一个属性对象,主对象的方法调用属性对象方法来服务服务对象,强调组合关系。

而适配器模式讲究的是两个接口之间的互联,这个接口的方法中调用另外一个接口的方法来实现,强调互联关系。

代码如下

public class Test {
    public static void main(String[] args){
    C c=new C();
    c.setA(new D());
    c.sayHello();
    } 
}
interface A{
    public void sayHi();
}

interface B{
    public void sayHello();
}
class C implements B{
    private A a;
    public void setA(A a2){
        this.a=a2;
    }
    @Override
    public void sayHello() {
        a.sayHi();
    }
}
class D implements A{
    @Override
    public void sayHi() {
        System.out.println("嗨!");
    }
}

可以看得出适配器模式更加抽象更加解耦