适配器模式
1.定义
将一个类的接口转换成客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
2.示例代码
/*客户端使用的接口,与特定领域相关*/ public interface Taget{ public void request(); } /*需要被适配的接口,已经存在与系统中*/ public interface Adaptee{ public void specificRequest(); } /*需要被适配的接口对象,已经存在与系统中*/ public class AdapteeImpl implements Adaptee{ public void specificRequest(){ System.out.printlin("Adaptee Request"); } }
/*适配器对象*/ public class Adapter implements Target{ /*持有需要被适配的接口对象*/ private private Adaptee adaptee; /*构造方法传入被适配的对象*/ public Adapter(Adaptee adaptee){ this.adaptee = adaptee ; } public void request(){ //转调已实现了的方法进行适配 adaptee.specificRequest(); } }
/*使用适配器的客户端*/ public class Client{ public static void main(String agrs[]){ //创建需要适配的对象 Adaptee adaptee = new AdapteeImpl(); //创建客户端需要调用的接口对象 Target target = new Adapter(adaptee); target .request(); } }
3.实际应用
在实现适配器的时候,适配器通常是一个类,一般会让适配器去实现Target接口,然后在适配器的具体实现里边调用Adaptee。也就是说适配器通常是一个Target类型,而不是Adaptee类型。过多的使用适配器,会让系统非常凌乱,不容易整体进行把握。
适配器模式的本质:转换匹配,复用功能