外觀模式-引導篇及原理
創新互聯建站專注于崇信網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供崇信營銷型網站建設,崇信網站制作、崇信網頁設計、崇信網站官網定制、小程序定制開發服務,打造崇信網絡公司原創品牌,更為您提供崇信網站排名全網營銷落地服務。
來看看司小司的新項目-家庭影院控制接口項目
家庭影院設備:
DVD播放器、投影儀、自動屏幕、環繞立體聲、爆米花機等等。
對于的類對象:DVDPlayer、Projector、Stereo、Popcorn、Screen、TheaterLights etc...
類圖如下:
我們知道,這些設備需要遙控器,同時這些設備都對外提供了接口。如果一個設備一個遙控器是不是很麻煩。現在需求是,為了方便省事。只需要一個設備來處理。
來源:凱哥Java(kaigejava)
我們先來看看傳統的控制接口設計,步驟如下圖:
看一場家庭影院,還這么多步驟。確實很麻煩。我們來分析:爆米花機可以看作是一個子系統、投影儀是一個子系統、音響可以看作是一個子系統等等。我們將各個設備都單獨的看作是一個子系統,我們就會發現,這些子系統或許存在著內部關聯關系或者是需要統籌協調工作的。有沒有更好的解決方案呢?
司小司調研之后,決定使用外觀模式這種設計模來實現這種需求。我們先來看看外觀模式是什么。
我們可以將以上各個設備相識或者有關聯的操作放到一個方法中,然后對外在提供統一的一個對象接口。這樣,比如說,我們先要準備:爆米花機開機、投影儀開機、屏幕自動放下這一組操作放到一個方法中。DVD碟片選擇、燈光調暗、播放DVD這一組操作放到一個方法中。關閉各種設備操作放到一個方法中。最后我們就得到了如下的類圖:
經過上面分析,我們可以知道:
外觀模式:對外提供了一個統一的接口,來訪問子系統中一群功能相關接口。
外觀模式定義了一個高層接口,讓子系統更容易使用。
我們來看看代碼結構:
說明:
爆米花機、投影儀、屏幕等我們使用的都是單例模式。因為這些東西,一個家庭一個就可以了。所以這里就使用了單例模式來處理的。
凱哥個人博客:www.kaigejava.com
凱哥公眾號:凱哥Java(kaigejava)
在測試類中:
我們調用了準備及播放功能。運行結果:
我們發現,對外提供接口解耦提高了。
文章標題:設計模式之外觀模式-引導篇及原理
分享URL:http://vcdvsql.cn/article38/gdicpp.html
成都網站建設公司_創新互聯,為您提供搜索引擎優化、企業網站制作、網頁設計公司、App設計、品牌網站制作、外貿網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯