概念
外觀模式的主要目的在于讓外部減少與子系統(tǒng)內部多個模塊的交互递胧,從而讓外部能夠更簡單地使用子系統(tǒng),它負責把客戶端的請求轉發(fā)給子系統(tǒng)內部的各個模塊 進行處理戏仓。
他只是實現(xiàn)功能的組合調用蹂风,只是各個模塊的功能的一個組合而已,而不是像 裝飾模式爱葵。
使用場景
1.當你要為一個復雜系統(tǒng)提供一個簡單的接口時
2.客戶程序與抽象類的實現(xiàn)部分之間存在著很大的依賴性
3.當你需要構建一個層次結構的子系統(tǒng)時。
其實就是攔截了一層反浓,客戶端掉用方 是不需要改的萌丈。
為了讓整個系統(tǒng)只有一個外觀類,用了單例
在android中的應用
contextImpl
AcitivityThread.java 的 main()
開啟一個 looper雷则,
然后就找handlerMessage
找到 handlerLaunchActivity()
然后performLaunchActivity()
里面的
activity.attch( appContext ,等等)
所以Acivity 的父類也是context 辆雾,并不實現(xiàn)具體的功能,他只是繼承context 接口月劈,他具體的操作會交給 contextImpl 這個類去做度迂,因為他用到的是 contextImpl 的外觀設計模式藤乙。
然后看act 中的attah()
里面的 attachBaseContext
再往下看的到, 這個context 被傳給了 Context mBase惭墓;
所以 activity 的內部就持有了 context的引用坛梁。
所以 activity 充當?shù)?是代理類,他代理了 contextImpl 去做的事情腊凶。