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