天天看點

入門設計模式之擴充卡模式

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。部落格源位址為zhixiang.org.cn https://blog.csdn.net/myFirstCN/article/details/80866469

學習更多設計模式請參考: 入門設計模式之彙總篇

擴充卡模式:把一個類的接口轉換為用戶端需要的另一個接口

比如說,我們去相親,目标中的女孩是會唱歌會跳舞的女孩,但是介紹人說這個女孩隻會唱歌,不會跳舞,那你肯定不會滿意呀。不過介紹人說,沒關系,我有辦法。哦?那我們來看看他有什麼辦法呢

  • 上方Girl接口就是我們希望女孩的樣子,也就是女孩接口,會唱歌會跳舞。
  • 這個SimpleGirl就是介紹人一開始說的隻會唱歌的女孩
  • 下方Adapter就是介紹人的方法了,它就是通過這個類讓我們實作了夢想中的女孩,來看一下實作吧
public interface Girl {
    public void sing();
    public void dance();
}

public class SimpleGirl {
    public void sing() {
    }
}

public class Adapter  implements Girl {
    SimpleGirl girl;

    Adapter(SimpleGirl girl){
        this.girl=girl;
    }

    @Override
    public void dance() {

    }
    public void sing() {
        girl.sing();
    }
}

           

這個實作的原理呢其實就是在女孩類的外面包裝了一層,使她學會了跳舞的方法。

本文出自

https://zhixiang.org.cn/#/blog/read/c59dd69d-f539-43e8-9834-7f28c8f30432

,轉載請保留。

繼續閱讀