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

溫馨提示×

溫馨提示×

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

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

設計模式之外觀模式-總結

發布時間:2020-04-08 06:16:19 來源:網絡 閱讀:299 作者:凱哥Java 欄目:編程語言

設計模式之外觀模式-總結

設計模式之外觀模式-總結


在上一篇中,我們模擬家庭影院項目實現了外觀模式講解。本篇我們對外觀模式進行總結。

來源:凱哥Java(kaigejava).本文由凱哥《23設計模》系列中的一篇。

凱哥突然感覺,使用家庭影院這個例子不恰當。換個通俗易懂的。去銀行存取錢。這個案例大家都遇到過吧。

我們去銀行后,每個窗口都有個漂亮的為各位服務。在我們存取錢的過程中,只需要和窗口溝通就可以了。我們把IDcard給、輸入密碼然后就會給你需要取得錢。我們來分析這個過程。

設計模式之外觀模式-總結

存取錢用戶相對于銀行系統來說,是外部人員(系統),窗口服務員就是銀行對外提供得一個交互窗口。我們把需要得IDCard、銀行卡、密碼輸入之后,窗口服務員就會給我們打印收據、取錢、請領導簽字(如果取錢額度較大得話)等等操作,窗口服務員都幫我們處理完了。最后,我們返回給我們得是我們需要取得現金或者存得憑證。

我們來分析角色:

外部調用系統(或者客戶端):如使用遙控器控制影院得人或去銀行存取錢得我們

復雜系統:如影院相關得或者銀行系統

在復雜系統中,內部子系統:

銀行例子中的:驗鈔機、打印機、保險箱、銀行領導等。

我們為什么要使用外觀模式?能解決什么問題?

降低了訪問復雜系統的內部的復雜聯系。

設計模式之外觀模式-總結


如何理解這句話?

去銀行取錢,如果沒有窗口服務,我們需要自己數錢、自己找打印機、自己找銀行領導簽字等等。是不是很麻煩。有了窗口服務員,我們自需要和服務員交換,其他都不用關了。

所以,我們可以得到外觀模式的關鍵代碼在于:當客戶端和復雜系統之間進行交換的時候,在兩者之間在封裝添加一層,這一層的作用就是將調用順序、依賴關系等等都處理好的。

優點:

減少了系統之間的相互依賴關系、提高了系統的靈活性、提高了系統的安全性(想想如果去銀行取錢,讓你自己從保險柜中拿錢這感覺~);

客戶端不之間和復雜系統耦合,使用外觀類和系統進行耦合,降低了耦合性;

預防低水平的開發人員帶來的風險

缺點:

不符合軟件設計的開閉原則,如果,需要修改東西,就要修改對外的窗口,很麻煩,繼承重寫都是不合適的。

使用場景:

為一個復雜的模塊或者是子系統提供外界訪問的模塊;

子系統相對獨立的

外觀模式的目的:

為子系統中的一組接口或者一組功能提供一個一致的接口(界面),外管模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。

本文來源:凱哥Java(kaigejava)

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

本文地址:http://kaigejava.com/gwjeesns/article/edit/567

應用實例:

如果家庭影院以及銀行取錢例子還不好理解。那么最簡單的,JAVA中三層開發模式(MVC)就是典型的外觀模式。這下是不是就好理解了.



向AI問一下細節

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

AI

阳高县| 嘉义县| 秦皇岛市| 千阳县| 陆良县| 乡城县| 白玉县| 清丰县| 东海县| 嘉荫县| 都兰县| 桓台县| 闻喜县| 郴州市| 永宁县| 临江市| 邵阳市| 定陶县| 西贡区| 大同县| 东宁县| 桑植县| 云阳县| 盘锦市| 铅山县| 南漳县| 连州市| 苍山县| 天门市| 孝感市| 南通市| 永嘉县| 玉环县| 平泉县| 黎城县| 鹤庆县| 锦屏县| 丽水市| 屏东市| 乐陵市| 衡水市|