設(shè)計模式代表有經(jīng)驗的面向?qū)ο筌浖_發(fā)人員使用的最佳實踐。 設(shè)計模式是軟件開發(fā)人員在軟件開發(fā)過程中面臨的一般問題的解決方案。 這些解決方案是由許多軟件開發(fā)人員在相當(dāng)長的時間內(nèi)通過試錯獲得的。
1994年,有四位作者:Erich Gamma,Richard Helm,Ralph Johnson和John Vlissides發(fā)表了一本題為《設(shè)計模式 - 可重用的面向?qū)ο筌浖亍返膱D書,該書在軟件開發(fā)中開創(chuàng)了設(shè)計模式的概念。
這些作者被統(tǒng)稱為四人幫(GOF)。 根據(jù)這些作者,設(shè)計模式主要基于以下面向?qū)ο笤O(shè)計的原則:
設(shè)計模式在軟件開發(fā)中有兩個主要用途。
設(shè)計模式提供了標準術(shù)語,并且特定于應(yīng)用折場景。 例如,單例設(shè)計模式表示使用單個對象,所以熟悉單一設(shè)計模式的所有開發(fā)人員都將使用單個對象,并且他們可以告訴對方程序正在遵循單例模式。
設(shè)計模式已經(jīng)經(jīng)過一段很長的時間發(fā)展,它們?yōu)檐浖_發(fā)過程中面臨的某些問題提供了最佳解決方案。 學(xué)習(xí)這些模式有助于無經(jīng)驗的開發(fā)人員以一種簡單快捷的方式學(xué)習(xí)軟件設(shè)計。
根據(jù)設(shè)計模式參考《設(shè)計模式 - 可重用的面向?qū)ο筌浖亍?/strong>一書中所述,一共有23
種設(shè)計模式可以分為三類:創(chuàng)造模式,結(jié)構(gòu)模式和行為模式。在這里我們還將討論另一類設(shè)計模式:J2EE設(shè)計模式。
編號 | 模式和說明 |
---|---|
1 | 創(chuàng)造模式 -這些設(shè)計模式提供了一種創(chuàng)建對象而隱藏創(chuàng)建邏輯的方法,而不是直接使用 new 操作符來實例化對象。 這使程序在決定對于給定的用例需要創(chuàng)建哪些對象時具有更大的靈活性。 |
2 | 結(jié)構(gòu)模式 - 這些設(shè)計模式涉及類和對象組成。 繼承概念用于組成接口并定義方法組合對象以獲得新功能。 |
3 | 行為模式 - 這些設(shè)計模式是特別側(cè)重于對象之間的通信。 |
4 | J2EE模式 - 這些設(shè)計模式特別涉及表示層。 這些模式由Sun Java Center 標識。 |
另外,設(shè)計模式是與編程語言無關(guān)的,它是用于解決常見的面向?qū)ο蟮脑O(shè)計問題。
設(shè)計模式代表一個想法,而不是一個實現(xiàn)。
通過使用設(shè)計模式,可以使我們的代碼更靈活,可重用和可維護。
Java本身內(nèi)部遵循設(shè)計模式。
在核心java中,主要有三種類型的設(shè)計模式,它們可進一步分為以下子部分:
1. 創(chuàng)造設(shè)計模式