一,概念介紹
外觀模式(facade),他隱藏了系統的複雜性,並向客戶端提供了乙個可以訪問系統的介面。這種型別的設計模式屬於結構性模式。為子系統中的一組介面提供了乙個統一的訪問介面,這個介面使得子系統更容易被訪問或者使用。
二,**實現
直接上**吧,邊看**遍理解概念,我覺得這樣效果也不錯,
第一步:先定義系統a、系統b、系統c這三個類,
複製**
package test;
*/public class systema
}複製**
複製**
package test;
*/public class systemb
複製**
複製**
package test;
*/public class systemc
}複製**
第二步:定義乙個高層介面,分別宣告呼叫三個子系統得方法
複製**
package test;
*/public inte***ce facade
複製**
第三步:實現定義得高層介面,並且持有子系統物件引用
複製**
package test;
*/public class facadeimpl implements facade
//呼叫a系統方法
@override
public void methoda()
//呼叫b系統方法
@override
public void methodb()
//呼叫b系統方法
@override
public void methodc() }
複製**
第四步:測試類編寫
複製**
package test;
*/public class test1 }
複製**
執行結果
三、優點
- 鬆散耦合
使得客戶端和子系統之間解耦,讓子系統內部的模組功能更容易擴充套件和維護;
- 簡單易用
客戶端根本不需要知道子系統內部的實現,或者根本不需要知道子系統內部的構成,它只需要跟facade類互動即可。
- 更好的劃分訪問層次
有些方法是對系統外的,有些方法是系統內部相互互動的使用的。子系統把那些暴露給外部的功能集中到門面中,這樣就可以實現客戶端的使用,很好的隱藏了子系統內部的細節。
effective C 條款四十七解讀
請使用traits classes表現型別資訊。traits classes使得型別相關資訊在編譯期可用。他們以template以及templates 特化完成實現。整合過載技術後,traits classes有可能在編譯期對型別執行if.else.測試.以標準庫中的迭代器為例 首先根據迭代器的型別...
愛情四十七課,別拿愛解恨
我們都有一股 毀壞 的力量,在情緒衝動的時候,會不管不顧的抓過自己最在意的東西 使勁摔下去 雪莉和男友爆吵了一架之後分了手。其實只是一件小事情,男友去幫前女友搬家,因為她實在找不到認識的人。本來這件事,幾句話就可以解釋清楚,可是雪莉被醋意和疑心沖昏了頭,罵了男友一句 不要臉的混蛋 男友也急了,然後就...
讀《構建之法》四 十七章
第四章第四章知識點總結 風格的總結 簡明 易讀 無二義性 建構函式的原則 專做一件事 單一出口 異常的處理 的複審 複審審核表的內容 結對程式設計的必要性與可能遇到的問題 結對程式設計的分工 注意 四個空格 限制行寬 基於本章的問題 結對程式設計是現在比較流行的一種合作程式設計模式,但是大的企業和公...