迪公尺特法則(lod):如果兩個類不能彼此直接通訊,那麼這兩個類就不應到發生直接的作用。如果其中乙個類需要呼叫另一類的某乙個方法的話,可以通過第三方**這個呼叫。
白話:android中intent類就是這個很好的例項,activity,service之間設計就是這樣的松耦合,他們不直接通訊,而是用intent這個第三方來通訊。
優點:類之間松耦合,當其中的類被修改時,不會對有關係的類造成波及,提高了維護性。
外觀模式(facade):為子系統中的一組介面提供乙個一致的介面,此模式定義乙個高層介面,這個介面使得這一子系統更加容易使用。
白話:當客戶端要使用伺服器類涉及到很多小類時,可將這組合成乙個外觀類facade封裝這些小類提供給客戶端,這樣客戶端只需跟這個外觀類facade互動,降低了客戶款互動的複雜性。
注意:可能認為這跟**模式很像,關鍵是facade類與下面的subsystem等類組合的關係,不存在共同的介面。而**則是真實物件和**存在共同介面。
場景:(1)設計初期階段,應該有意識的將不同層分離,層與層之間建立外觀模式。
(2) 開發階段,子系統越來越複雜,增加外觀模式提供乙個簡單的呼叫介面。
(3) 維護乙個大型遺留系統的時候,可能這個系統已經非常難以維護和擴充套件,但又包含非常重要的功能,為其開發乙個外觀類,以便新系統與其互動。
日拱一卒(一)
layer list 用來多個圖層堆疊顯示的 在drawable資料夾下建立乙個xml檔案。比如 background.xml 另外在layout檔案中指定background屬性這樣就會載入pic1和pic2這兩張。imageview android background drawable bac...
日拱一卒(十四)
git 初識 1.安裝 linux sudo apt get install git core 2.建立 倉庫 linux下開啟shell,windows開啟git bash 1 配置下身份 git config global user.name tony git config global use...
LeetCode日拱一卒
121.best time to buy and sell stock 2018 8 7 假設有乙個陣列,它的第i個元素是一支給定的 在第i天的 如果你最多隻允許完成一次交易 例如,一次買賣 設計乙個演算法來找出最大利潤。例1 輸入 7,1,5,3,6,4 輸出 5 說明 在第2天 1 並在第5天賣...