一、适配器模式定义
把一个类的接口变换成客户端所期待的另一种接口,使得原本由于接口不兼容而不能再一起工作的那些类可以一起工作。
二、适配器模式分类
1、类的适配器模式(采用继承实现)
2、对象适配器(采用对象组合方式实现)
三、应用场景
1、系统需要使用现有的类,而这个类的接口不符合系统的需要
2、想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。这些源类不一定有很重复的接口。
3、在设计中,需要改变多个已有子类的接口,如果使用类的适配器模式,就要针对每一个子类做一个适配器,而这不太实际。
四、类适配器
public interface Switch { public void provide();}
public class Phone { public void use(){ System.out.println("通电使用"); }}
public class Adaptor extends Phone implements Switch { @Override public void provide() { System.out.println("提供电力"); super.use(); }}
public class Client { public static void main(String[] args) { Adaptor adaptor=new Adaptor(); adaptor.provide(); }}
五、对象适配器模式
public class Switch { public void provide(){ System.out.println("提供电力"); }}
public class Phone { public void use(){ System.out.println("有电使用"); }}
public class Adaptor extends Switch { Phone myphone=new Phone(); @Override public void provide() { super.provide();//通过继承来调用Switch的方法 myphone.use();//通过聚合调用Phone的方法 }}
public class Client { public static void main(String[] args) { Adaptor adaptor=new Adaptor(); adaptor.provide(); }}