适配器模式
-
例如:用户的需求与解决的代码不匹配,这就需要适配器
- 类适配器
package com.bjsxt.test11; //被适配的类 public class Adaptee { public void surf(){ System.out.println("提供上网功能!"); } } //客户的目的就是为了上网 interface Target{ void toSurf(); } class Client{ public void want(Target t){ t.toSurf(); } } //进行适配工作 class Adapter extends Adaptee implements Target{ @Override public void toSurf() { System.out.println("转换。。。"); super.surf(); } } class Test{ public static void main(String[] args) { new Client().want(new Adapter()); } }
- 对象适配器(仅改变适配器的类即可)
package com.bjsxt.test11; //被适配的类 public class Adaptee { public void surf(){ System.out.println("提供上网功能!"); } } //客户的目的就是为了上网 interface Target{ void toSurf(); } class Client{ public void want(Target t){ t.toSurf(); } } //进行适配工作 //对象适配器就更改适配器,不改其他的 class Adapter implements Target{ Adaptee ae; public Adapter(Adaptee ae){ this.ae=ae; } @Override public void toSurf() { System.out.println("转换。。。"); ae.surf(); } } class Test{ public static void main(String[] args) { new Client().want(new Adapter(new Adaptee())); } }
-
适配器模式的优缺点:
优点:
更好的复用性
更好的扩展性:调用自己开发的功能,从而扩展系统的功能
缺点:
过多的适配器会让系统特别的凌乱,如果不是很必要,可以不适用适配器,而是直接对系统进行重构