iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0
自我挑戰組

深入淺出設計模式 (Head First Design Pattern) - 重點整理及範例分享系列 第 27

[深入淺出設計模式] Ch7 The Adapter Pattern (4) - 【外觀模式】範例 Home Sweet Home Theater 家庭劇院

  • 分享至 

  • xImage
  •  

外觀模式範例 Home Sweet Home Theater 家庭劇院

外觀模式的概念在上篇已經有介紹過,簡單來說他就是可以簡化使用者介面的方法,同時也有保留功能可以更改的彈性。
如果今天我想約網友回家看電影,先不論目的為何,要兼具隱私又要有娛樂性,就非得要弄一套家庭劇院。
但是家庭劇院要有音響、播放器、投影機、投影幕,喔最好再來個自製爆米花,每次光是看電影前的準備,以及電影結束善後,就可以讓我果斷去買威X的電影票。外觀模式可以把使用者跟使用介面解隅,這邊我們就嘗試用外觀模式,去簡化這些瑣碎的工作。
https://ithelp.ithome.com.tw/upload/images/20231012/20163178YpITDduXVH.png

先大概了解 Facade有什麼屬性:

class HomeTheaterFacade{
    Amplifier amp;
    Tuner tuner; 
    DvdPlayer dvd; 
    CdPlayer cd; 
    Projector projector; 
    TheaterLights lights; 
    Screen screen; 
    PopcornPopper popper;

    public HomeTheaterFacade(
        Amplifier amp, 
        Tuner tuner,
        DvdPlayer dvd, 
        CdPlayer cd,
        Projector projector,
        Screen screen, 
        TheaterLights lights, 
        PopcornPopper popper) {

        this.amp
        this.tuner = tuner; 
        this.dvd = dvd;
        this.cd = cd; 
        this.projector = projector; 
        this.screen = screen; 
        this.lights = lights; 
        this.popper = popper;
    }
}

參考資料:

  1. 《深入淺出設計模式 (Head First Design Patterns) 》
  2. 書中官方程式碼傳送門

Disclaimer
因為讀的是原文版,所以難免會有翻譯詞不達意或是專有名詞上的差異,有錯誤的話歡迎在留言區一起交流!


上一篇
[深入淺出設計模式] Ch7 The Adapter Pattern (3) - 【外觀模式】
下一篇
[深入淺出設計模式] Ch7 The Adapter Pattern (5) - 【外觀模式】範例 Home Sweet Home Theater 家庭劇院 (已更新)
系列文
深入淺出設計模式 (Head First Design Pattern) - 重點整理及範例分享35
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言