適配器模式

適配器模式又分爲類適配器,和對象適配器模式.接下來我來演示一下

 

類適配器

1.首先定義一個被適配者

/**
 * @program: design
 * @description: 被飾配者
 * @author: lyc
 * @create: 2019-03-23 09:13
 **/
public class Adaptee {
    public  void adapterRequest(){
        System.out.println("被適配者的方法");
    }
}

2.定義目標接口



public interface Target {
    void request();
}

3.定義創建一個真實的目標實現目標接口

public class ConcreteTarget implements Target {
    @Override
    public void request() {
        System.out.println("ConcreteTarget目標的方法");
    }
}

4.創建一個適配者繼承被適配者實現目標接口

/**
 * @program: design
 * @description: 適配者
 * @author: lyc
 * @create: 2019-03-23 09:18
 **/
public class Adapter extends Adaptee implements Target {
    @Override
    public void request() {
        //調用父類的方法
        super.adapterRequest();
    }
}

5.測試

public class Test {
    public static void main(String[] args) {
         Target target=new ConcreteTarget();
         target.request();
        
         //因爲Adapter是實現了Targrt接口
        Target  adapter=new Adapter();

        adapter.request();
    }
}

對象適配器

與類適配器不同的是對象適配器不需要繼承.是通過組合的方式

1.首先定義一個被適配者

/**
 * @program: design
 * @description: 被飾配者
 * @author: lyc
 * @create: 2019-03-23 09:13
 **/
public class Adaptee {
    public  void adapterRequest(){
        System.out.println("被適配者的方法");
    }
}

2.定義目標接口



public interface Target {
    void request();
}

3.定義創建一個真實的目標實現目標接口

public class ConcreteTarget implements Target {
    @Override
    public void request() {
        System.out.println("ConcreteTarget目標的方法");
    }
}

4.創建一個適配者實現目標接口

public class Adapter implements Target {
   //把被適配者組合進來
    private  Adaptee adaptee=new Adaptee();
    @Override
    public void request() {
        adaptee.adapterRequest();
    }
}

5.測試

public class Test {
    public static void main(String[] args) {
         Target target=  new ConcreteTarget();
         target.request();

         //因爲Adapter是實現了Targrt接口
        Target  adapter=new Adapter();

        adapter.request();
    }
}

結果


ConcreteTarget目標的方法
被適配者的方法

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章