1.設計模式六大原則
a.單一職責原則:就一個類來說,應該只有一個引起它變化的原因
一個類做一件事情,避免職責過多。比如這種情況是不太好的,在一個Activity中既有bean文件,又有http請求,還有adapter等等,這就導致我們需要修改任何一個東西的時候都會導致Activity的改變,這樣一來就有多個引起它變化的原因,不符合單一職責原則
b.開放封閉原則:類,模塊,函數應該是可以擴展的,但是不可以修改
對於擴展是開放的,對於修改是封閉的。儘量做到面對需求的改變時,我們的代碼能保持相對穩定,通過擴展的方式應對變化,而不是修改原有代碼實現
c.里氏替換原則:所有引用基類的地方,必須可以透明的時候其子類的對象
里氏替換原則是實現開放封閉原則的重要方式之一,我們知道,使用基類的地方都可以使用子類去實現,因爲子類擁有基類的所有方法,所以在程序設計中儘量使用基類類型對對象進行定義,在運行時確定子類類型。
d.依賴倒置原則:高層模塊不應該依賴於底層模塊,兩者都應該依賴於抽象,抽象不應該依賴於細節,細節應該依賴於抽象
依賴倒置原則針對的是模塊之間的依賴關係,高層模塊指調用端,底層模塊指具體的實現類,抽象指接口或抽象類,細節就是實現類。該原則的具體表現就是模塊間的依賴通過抽象發生,直線類之間不發生直接依賴關係,依賴通過接口或抽象類產生,降低耦合,比如MVP模式下,View層和P層通過接口產生依賴關係
e.迪米特原則(最少知識原則):一個軟件實體應該儘可能少的與其他實體發生相互作用
迪米特原則要求我們在設計系統時,儘量減少對象之間的交互
f.接口隔離原則:一個類對另一個類的依賴應該建立在最小的接口上
接口隔離原則的關鍵是接口以及這個接口要小,如何小呢,也就是我們要爲專門的類創建專門的接口,這個接口只對它有效,不要試圖讓一個接口包羅萬象,要建立最小的依賴關係
設計模式的分類
設計模式分爲三類
創建型設計模式
與對象創建有關包括單例模式,工廠方法模式,抽象工廠模式,建造者模式,原型模式
結構型設計模式
結構性設計模式是從程序的結構上解決模塊之間的耦合問題,包括適配器模式,代理模式,裝飾模式,外觀模式,橋接模式,組合模式和享元模式
行爲型設計模式
主要處理類或對象如何交互及如何分配職責,包括策略模式,模板方法模式,觀察者模式,迭代器模式,責任鏈模式,命令模式,備忘錄模式,狀態模式,訪問者模式,中介模式,解析器模式