适配器模式:适配器模式相对来说抽象一些,我曾经一度分不清楚他与策略模式,状态模式的区别,其实还是很简单的。
策略模式讲究的是放入一个对象的不同子类服务另外一个对象,主对象之中的属性放入另外一个属性对象,主对象的方法调用属性对象方法来服务服务对象,强调组合关系。
而适配器模式讲究的是两个接口之间的互联,这个接口的方法中调用另外一个接口的方法来实现,强调互联关系。
代码如下
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("嗨!"); } }
可以看得出适配器模式更加抽象更加解耦