什么是Java編程設(shè)計模式?
設(shè)計模式,即DesignPatterns,是指在軟件設(shè)計中,被反復(fù)使用的一種代碼設(shè)計經(jīng)驗。使用設(shè)計模式的目的是為了可重用代碼,提高代碼的可擴展性和可維護性。

設(shè)計模式這個術(shù)語是上個世紀(jì)90年代由ErichGamma、RichardHelm、RaplhJohnson和JonhnVlissides四個人總結(jié)提煉出來的,并且寫了一本DesignPatterns的書。這四人也被稱為四人幫(GoF)。
為什么要使用設(shè)計模式?根本原因還是軟件開發(fā)要實現(xiàn)可維護、可擴展,就必須盡量復(fù)用代碼,并且降低代碼的耦合度。設(shè)計模式主要是基于OOP編程提煉的,它基于以下幾個原則:

開閉原則
由BertrandMeyer提出的開閉原則(OpenClosedPrinciple)是指,軟件應(yīng)該對擴展開放,而對修改關(guān)閉。這里的意思是在增加新功能的時候,能不改代碼就盡量不要改,如果只增加代碼就完成了新功能,那是最好的。
里氏替換原則
里氏替換原則是BarbaraLiskov提出的,這是一種面向?qū)ο蟮脑O(shè)計原則,即如果我們調(diào)用一個父類的方法可以成功,那么替換成子類調(diào)用也應(yīng)該完全可以運行。

設(shè)計模式把一些常用的設(shè)計思想提煉出一個個模式,然后給每個模式命名,這樣在使用的時候更方便交流。GoF把23個常用模式分為創(chuàng)建型模式、結(jié)構(gòu)型模式和行為型模式三類,我們后續(xù)會一一講解。
學(xué)習(xí)設(shè)計模式,關(guān)鍵是學(xué)習(xí)設(shè)計思想,不能簡單地生搬硬套,也不能為了使用設(shè)計模式而過度設(shè)計,要合理平衡設(shè)計的復(fù)雜度和靈活