適配器模式

模式定義

將一個類的接口,轉換成客戶指望的另外一個接口。適配器模式讓本來接口不兼容的類能夠合做無間。java

類圖

示例

/**
 * 鴨子接口
 *
 * @author Colin
 * @create 2018-05-07
 **/
public interface Duck {
    public void quack();
    public void fly();
}

/**
 * 雞
 *
 * @author Colin
 * @create 2018-05-07
 **/
public interface Chicken {

    public void Gege();
    public void fly();

}
**
 * 適配器
 *
 * @author Colin
 * @create 2018-05-07
 **/
public class ChickenAdapter implements  Duck {

    private Chicken chicken;

    public ChickenAdapter(Chicken chicken){
        this.chicken=chicken;
    }
    @Override
    public void quack() {
        chicken.Gege();
    }

    @Override
    public void fly() {
        chicken.fly();
    }
}
/**
 * 綠鴨子
 *
 * @author Colin
 * @create 2018-05-07
 **/
public class GreenDuck implements Duck {
    @Override
    public void quack() {
        System.out.println("呱呱叫!");
    }

    @Override
    public void fly() {
        System.out.println("飛起來!");
    }
}

/**
 * 母雞
 *
 * @author Colin
 * @create 2018-05-07
 **/
public class HenChicken implements Chicken {
    @Override
    public void Gege() {
        System.out.println("母雞咯咯叫!");
    }

    @Override
    public void fly() {
        System.out.println("母雞會飛!");
    }
}

public class AdapterTest {


    @Test
    public void testAdapter(){

        GreenDuck greenDuck=new GreenDuck();
        HenChicken chicken=new HenChicken();

        Duck duck=new ChickenAdapter(chicken);
        duck.quack();
        duck.fly();
    }
}

總結

  • 當須要使用一個現有的類,接口並不符合你的需求時,就使用適配器模式
  • 適配器改變接口以符合客戶的指望
相關文章
相關標籤/搜索