1.什么是設(shè)計模式
- 設(shè)計模式(Design Pattern)是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類的、代碼設(shè)計經(jīng)驗的總結(jié)。
- 目的:為了代碼可重用性、讓代碼更容易被他人理解、保證代碼可靠性。 設(shè)計模式使代碼編寫真正工程化;設(shè)計模式是軟件工程的基石脈絡(luò),如同大廈的結(jié)構(gòu)一樣。-摘自《百度百科》
2.為什么要學(xué)設(shè)計模式
- 筆者最近看jdk源碼,看到龐大的類繼承關(guān)系,第一反應(yīng)就是頭大。不經(jīng)意筆者看到了《Head First設(shè)計模式 》,通過了解各種設(shè)計模式,以前繁雜的類的關(guān)系突然變得有跡可循,隨之暫停了源碼初探之旅,開始學(xué)習(xí)設(shè)計模式并記錄心得。
- 設(shè)計模式的共享詞匯減少溝通成本,就像我會說西紅柿,你說番茄。
- 設(shè)計模式描述在什么環(huán)境下,出現(xiàn)什么特定的問題,指導(dǎo)我們?nèi)绾胃咝绾谓鉀Q問題,以及應(yīng)用模式后的效果和可能帶來的問題。
- 代碼就可以達到了代碼復(fù)用、增加可維護性的目的,從而增加重用性,易于修改,后期可擴展。
3.設(shè)計模式的原則(總結(jié)自《Head First設(shè)計模式 》)
- 1 封裝變化。
2.多用組合少用繼承。
3 針對接口編程,不針對實現(xiàn)編程。
4為交互對象之間的松耦合設(shè)計而努力。
5類應(yīng)該對擴展開放,對修改關(guān)閉。
6依賴抽象,不要依賴具體類。
7 類應(yīng)該只有一個改變的理由。
8一個實體應(yīng)當盡量少的與其他實體之間發(fā)生相互作用,使得系統(tǒng)功能模塊相對獨立。
4. 常見的設(shè)計模式
image.png
更多介紹請參考:設(shè)計模式總結(jié)