适配器模式理解

通过阅读CSDN博客,记录自己的理解:

根据适配器类与适配者类的关系不同,适配器模式可分为对象适配器和类适配器两种,在对象适配器模式中,适配器与适配者之间是关联关系;在类适配器模式中,适配器与适配者之间是继承(或实现)关系

适配器模式理解_第1张图片

​ 解释:

​ Adaptee:适配者类

​ Target:目标抽象类

​ Adapter:适配器类

  1. 对象适配器

    class Adapter extends Target {  
       private Adaptee adaptee; //维持一个对适配者对象的引用  
    
       public Adapter(Adaptee adaptee) {  
           this.adaptee=adaptee;  
       }  
    
       public void request() {  
           adaptee.specificRequest(); //转发调用  
       }  
    } 
  2. 类适配器

    类适配器需要继承适配者类,对于Java语言来说只能单继承,并且适配者类不能有final修饰。

    class Adapter extends Adaptee implements Target {  
       public void request() {  
           specificRequest();  
       }  
    }  

缺省适配器是适配器模式的一种变体

​ 当不需要实现一个接口所提供的所有方法时,可先设计一个抽象类实现该接口,并为接口中每个方法提供一个默认实现(空方法),那么该抽象类的子类可以选择性地覆盖父类的某些方法来实现需求,它适用于不想使用一个接口中的所有方法的情况,又称为单接口适配器模式。

在JDK类库的事件处理包java.awt.event中广泛使用了缺省适配器模式,如WindowAdapter、KeyAdapter、MouseAdapter等。

你可能感兴趣的:(设计模式)