目測很久沒寫文章了,距離上一篇文章也有二十多天。我是怎麼了?哈哈~,兩個字:生命。生命彷佛說大了,那健康吧。吃一塹長一智吧 html
思考對生活 對生命 java
個人信仰?佛教?基督?…當你生病了,有藥吃。好比感冒了感冒藥你會以爲藥難吃。人嗎就是那樣,但當你想到了,你生病了沒藥可吃是多麼無奈。好比我 胸悶 胸疼。隨之而來的是蹦波勞累,上海-溫州-家裏台州,各處跑。看病,啥?無病?no web
那時候的本身想起乘車就怕,四肢無力。簡直是注意力,精神都沒了。看代碼?看着java 想着是啥我都忘了。 架構
後來醫生藥卻是沒有,本身頹廢着…也就是那次,那次開學初。我再次乘了懼怕的動車去學校了。我相信本身會慢慢好的,不熬夜,規律休息。第一個星期是最漫長的日子、聽課無力,坐多了腰疼。shit!堅持…堅持…後來明顯慢慢有力了。第二個星期,我開始鍛鍊,目前第三個星期了,我堅持鍛鍊了六天。fuck my heath! i am coming , hope no so late。 學習
看源碼是種享受,最近各類看。沒事就看,有事就忙。我以爲貴在學習吧。哈哈~ 第一次看到了是這裏: 測試
正所謂,知之爲知之,用到纔算真。小朽不懂,就立刻去百度了下這個Facade。得知是個模式,正好呀,學唄。說罷就查了視頻看,查了人家的博客看。值得看何須不看呢。 this
外觀模式(Facade)能夠江一系列複雜的包封裝成一個簡單的封閉接口。也能夠說,一個子系統的外部與其內部的通訊必須經過一個統一的Facade對象進行。這裏的通訊的意思:彼此相互做用。它的做用提供了一個高層的接口,易於使用。 google
Facade 爲調用方定義簡單的調用接口。
Clients 調用者。經過Facade接口調用提供某功能的內部類羣。
Packages 功能提供者。指提供功能的類羣(模塊或子系統) spa
現實中,八九十年代,沒有基金的時候。國債,股票,期貨…都是各自運行的。例以下面: 設計
股票:
1
2
3
4
5
6
|
public class Gupiao {
public void mai() {
System.out.println("買股票");
}
}
|
期貨:
1
2
3
4
5
6
|
public class Qihuo {
public void chao() {
System.out.println("買期貨");
}
}
|
國債:
1
2
3
4
5
6
|
public class GuoZai {
public void mai() {
System.out.println("買國債");
}
}
|
若是你想買國債,買期貨,你會跟各自的系統打交道。new 其中一個對象進行操做。因此這會形成下面幾點:
1.耦合度增長
2.無層次化,結構不分明
自從有了基金。什麼是基金,按着外觀模式的說法,就是你不知道有多少種股票或者啥,基金幫你打理這些小系統。它幫你安排了各類方案,好比
基金:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
public class JiJin {
private Gupiao gupiao;
private GuoZai guozai;
private Qihuo qihuo;
public JiJin() {
this.guozai =new GuoZai();
this.gupiao =new Gupiao();
this.qihuo =new Qihuo();
}
public void maiJijinA() {
this.guozai.mai();
this.gupiao.mai();
}
public void maiJijinB() {
this.guozai.mai();
this.gupiao.mai();
this.qihuo.chao();
}
}
|
測試案例:
1
2
3
4
5
6
|
public class MainClass {
public static void main(String[] args) {
JiJin jijin =new JiJin();
jijin.maiJijinB();
}
}
|
這樣一來,其實用性就出來了:
1.爲一個複雜子系統提供一個簡單接口。
2.提升子系統的獨立性。
3.在層次化結構中,可使用Facade模式定義系統中每一層的入口。
1 web三層構架,其實在數據訪問層和業務邏輯層,業務邏輯層和表示層的層與層之間創建外觀Facade模式應用,爲複雜的子系統提供一個簡單的接口或者抽象類,使得耦合大大下降。
2 在開發階段,子系統每每由於不斷的重構演化而變得愈來愈複雜,大多數的模式使用時也都會產生不少很小的類,這本是好事,但也給外部調用它們的用戶程序帶來了使用上的困難,增長外觀Facade能夠提供一個簡單的接口,減小它們之間的依賴。
具體作法:將小類規劃,分類。而後實現代理Facade。
3 在維護一個遺留的大型系統時,可能這個系統已經很是難以維護和擴展了,但由於它包含很是重要的功能,新的需求開發必須依賴於它。此時用外觀模式Facade也是很是合適的。例如能夠開發一個外觀Facade類,來提供設計粗糙或高度複雜的遺留代碼的比較清晰簡單的接口,讓新系統與Facade對象交互,Facade與遺留代碼交互全部複雜的工做。
能夠普遍用於WEB,項目架構。加油!!
參考資料:
google文章和本身的體會。
如以上文章或連接對你有幫助的話,別忘了在文章按鈕或到頁面右下角點擊 「贊一個」 按鈕哦。你也能夠點擊頁面右邊「分享」懸浮按鈕哦,讓更多的人閱讀這篇文章