影院管理項目
組建一個家庭影院:
DVD 播放器、投影儀、自動屏幕、環(huán)繞立體聲、爆米花機,要求完成使用家庭影院的功能,其過程為:直接用遙控器:
- 統(tǒng)籌各設(shè)備開關(guān)
- 開爆米花機
- 放下屏幕
- 開投影儀
- 開音響
- 開 DVD,選 dvd
- 去拿爆米花
- 調(diào)暗燈光
- 播放
- 觀影結(jié)束后,關(guān)閉各種設(shè)備
傳統(tǒng)方式解決影院管理
傳統(tǒng)方式解決影院管理問題分析
- 在 ClientTest 的 main 方法中,創(chuàng)建各個子系統(tǒng)的對象,并直接去調(diào)用子系統(tǒng)(對象)相關(guān)方法,會造成調(diào)用過程混亂,沒有清晰的過程
- 不利于在 ClientTest 中,去維護對子系統(tǒng)的操作
- 解決思路:定義一個高層接口,給子系統(tǒng)中的一組接口提供一個一致的界面(比如在高層接口提供四個方法ready, play, pause, end ),用來訪問子系統(tǒng)中的一群接口
- 也就是說 就是通過定義一個一致的接口(界面類),用以屏蔽內(nèi)部子系統(tǒng)的細(xì)節(jié),使得調(diào)用端只需跟這個接口發(fā)生調(diào)用,而無需關(guān)心這個子系統(tǒng)的內(nèi)部細(xì)節(jié) => 外觀模式
外觀模式基本介紹
- 外觀模式(Facade),也叫“過程模式:外觀模式為子系統(tǒng)中的一組接口提供一個一致的界面,此模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用
- 外觀模式通過定義一個一致的接口,用以屏蔽內(nèi)部子系統(tǒng)的細(xì)節(jié),使得調(diào)用端只需跟這個接口發(fā)生調(diào)用,而無需關(guān)心這個子系統(tǒng)的內(nèi)部細(xì)節(jié)
外觀模式原理類圖
對類圖說明(分類外觀模式的角色)
- 外觀類(Facade): 為調(diào)用端提供統(tǒng)一的調(diào)用接口, 外觀類知道哪些子系統(tǒng)負(fù)責(zé)處理請求,從而將調(diào)用端的請求代理給適當(dāng)子系統(tǒng)對象
- 調(diào)用者(Client): 外觀接口的調(diào)用者
- 子系統(tǒng)的集合:指模塊或者子系統(tǒng),處理 Facade 對象指派的任務(wù),他是功能的實際提供者
外觀模式解決影院管理
傳統(tǒng)方式解決影院管理說明
- 外觀模式可以理解為轉(zhuǎn)換一群接口,客戶只要調(diào)用一個接口,而不用調(diào)用多個接口才能達(dá)到目的。比如:在 pc上安裝軟件的時候經(jīng)常有一鍵安裝選項(省去選擇安裝目錄、安裝的組件等等),還有就是手機的重啟功能(把關(guān)機和啟動合為一個操作)。
- 外觀模式就是解決多個復(fù)雜接口帶來的使用困難,起到簡化用戶操作的作用
外觀模式應(yīng)用實例
- 應(yīng)用實例要求
- 使用外觀模式來完成家庭影院項目
- 思路分析和圖解(類圖)
文章來源:http://www.zghlxwxcb.cn/news/detail-704422.html
- 代碼案例
https://gitee.com/luan_hao/design-pattern/tree/master/src/main/java/com/lh/facade文章來源地址http://www.zghlxwxcb.cn/news/detail-704422.html
外觀模式的注意事項和細(xì)節(jié)
- 外觀模式對外屏蔽了子系統(tǒng)的細(xì)節(jié),因此外觀模式降低了客戶端對子系統(tǒng)使用的復(fù)雜性
- 外觀模式對客戶端與子系統(tǒng)的耦合關(guān)系 - 解耦,讓子系統(tǒng)內(nèi)部的模塊更易維護和擴展
- 通過合理的使用外觀模式,可以幫我們更好的劃分訪問的層次
- 當(dāng)系統(tǒng)需要進行分層設(shè)計時,可以考慮使用 Facade 模式
- 在維護一個遺留的大型系統(tǒng)時,可能這個系統(tǒng)已經(jīng)變得非常難以維護和擴展,此時可以考慮為新系統(tǒng)開發(fā)一個Facade 類,來提供遺留系統(tǒng)的比較清晰簡單的接口,讓新系統(tǒng)與 Facade 類交互,提高復(fù)用性
- 不能過多的或者不合理的使用外觀模式,使用外觀模式好,還是直接調(diào)用模塊好。要以讓系統(tǒng)有層次,利于維護為目的
到了這里,關(guān)于設(shè)計模式之外觀模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!