一百四十七

2021-10-12 20:03:44 字數 1227 閱讀 8408

一,概念介紹

外觀模式(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.測試.以標準庫中的迭代器為例 首先根據迭代器的型別...

愛情四十七課,別拿愛解恨

我們都有一股 毀壞 的力量,在情緒衝動的時候,會不管不顧的抓過自己最在意的東西 使勁摔下去 雪莉和男友爆吵了一架之後分了手。其實只是一件小事情,男友去幫前女友搬家,因為她實在找不到認識的人。本來這件事,幾句話就可以解釋清楚,可是雪莉被醋意和疑心沖昏了頭,罵了男友一句 不要臉的混蛋 男友也急了,然後就...

讀《構建之法》四 十七章

第四章第四章知識點總結 風格的總結 簡明 易讀 無二義性 建構函式的原則 專做一件事 單一出口 異常的處理 的複審 複審審核表的內容 結對程式設計的必要性與可能遇到的問題 結對程式設計的分工 注意 四個空格 限制行寬 基於本章的問題 結對程式設計是現在比較流行的一種合作程式設計模式,但是大的企業和公...