91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

設計模式之外觀模式-引導篇及原理

發布時間:2020-07-29 14:32:40 來源:網絡 閱讀:284 作者:凱哥Java 欄目:編程語言

外觀模式-引導篇及原理

設計模式之外觀模式-引導篇及原理


來看看司小司的新項目-家庭影院控制接口項目

設計模式之外觀模式-引導篇及原理

家庭影院設備:

DVD播放器、投影儀、自動屏幕、環繞立體聲、爆米花機等等。

對于的類對象:DVDPlayer、Projector、Stereo、Popcorn、Screen、TheaterLights etc...

類圖如下:

設計模式之外觀模式-引導篇及原理

我們知道,這些設備需要遙控器,同時這些設備都對外提供了接口。如果一個設備一個遙控器是不是很麻煩。現在需求是,為了方便省事。只需要一個設備來處理。

來源:凱哥Java(kaigejava)

我們先來看看傳統的控制接口設計,步驟如下圖:

設計模式之外觀模式-引導篇及原理

看一場家庭影院,還這么多步驟。確實很麻煩。我們來分析:爆米花機可以看作是一個子系統、投影儀是一個子系統、音響可以看作是一個子系統等等。我們將各個設備都單獨的看作是一個子系統,我們就會發現,這些子系統或許存在著內部關聯關系或者是需要統籌協調工作的。有沒有更好的解決方案呢?

設計模式之外觀模式-引導篇及原理


司小司調研之后,決定使用外觀模式這種設計模來實現這種需求。我們先來看看外觀模式是什么。

我們可以將以上各個設備相識或者有關聯的操作放到一個方法中,然后對外在提供統一的一個對象接口。這樣,比如說,我們先要準備:爆米花機開機、投影儀開機、屏幕自動放下這一組操作放到一個方法中。DVD碟片選擇、燈光調暗、播放DVD這一組操作放到一個方法中。關閉各種設備操作放到一個方法中。最后我們就得到了如下的類圖:

設計模式之外觀模式-引導篇及原理

經過上面分析,我們可以知道:

外觀模式:對外提供了一個統一的接口,來訪問子系統中一群功能相關接口。

外觀模式定義了一個高層接口,讓子系統更容易使用。

我們來看看代碼結構:

設計模式之外觀模式-引導篇及原理

說明:

爆米花機、投影儀、屏幕等我們使用的都是單例模式。因為這些東西,一個家庭一個就可以了。所以這里就使用了單例模式來處理的。

凱哥個人博客:www.kaigejava.com

凱哥公眾號:凱哥Java(kaigejava)

在測試類中:

我們調用了準備及播放功能。運行結果:

我們發現,對外提供接口解耦提高了。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

浑源县| 仁怀市| 军事| 景德镇市| 青铜峡市| 屯门区| 金山区| 定襄县| 会东县| 泰和县| 阿勒泰市| 瓮安县| 周宁县| 广宗县| 肥西县| 永宁县| 邢台市| 万年县| 电白县| 城固县| 呈贡县| 米脂县| 贡嘎县| 东兰县| 焦作市| 湖口县| 鲜城| 日土县| 措勤县| 冷水江市| 广饶县| 孙吴县| 石泉县| 上思县| 大同县| 江安县| 宝应县| 伽师县| 平阳县| 潮安县| 交城县|