首頁技術文章正文

設計模式是什么?有哪些分類?

更新時間:2021-07-23 來源:黑馬程序員 瀏覽量:

IT培訓班

軟件設計模式的產(chǎn)生背景

"設計模式"最初并不是出現(xiàn)在軟件設計中,而是被用于建筑領域的設計中。

1977年美國著名建筑大師、加利福尼亞大學伯克利分校環(huán)境結構中心主任克里斯托夫·亞歷山大(Christopher Alexander)在他的著作《建筑模式語言:城鎮(zhèn)、建筑、構造》中描述了一些常見的建筑設計問題,并提出了 253 種關于對城鎮(zhèn)、鄰里、住宅、花園和房間等進行設計的基本模式。

1990年軟件工程界開始研討設計模式的話題,后來召開了多次關于設計模式的研討會。直到1995 年,艾瑞克·伽馬(ErichGamma)、理査德·海爾姆(Richard Helm)、拉爾夫·約翰森(Ralph Johnson)、約翰·威利斯迪斯(John Vlissides)等 4 位作者合作出版了《設計模式:可復用面向對象軟件的基礎》一書,在此書中收錄了 23 個設計模式,這是設計模式領域里程碑的事件,導致了軟件設計模式的突破。這 4 位作者在軟件開發(fā)領域里也以他們的“四人組”(Gang of Four,GoF)著稱。

軟件設計模式的概念

軟件設計模式(Software Design Pattern),又稱設計模式,是一套被反復使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設計經(jīng)驗的總結。它描述了在軟件設計過程中的一些不斷重復發(fā)生的問題,以及該問題的解決方案。也就是說,它是解決特定問題的一系列套路,是前輩們的代碼設計經(jīng)驗的總結,具有一定的普遍性,可以反復使用。

學習設計模式的必要性

設計模式的本質是面向對象設計原則的實際運用,是對類的封裝性、繼承性和多態(tài)性以及類的關聯(lián)關系和組合關系的充分理解。

正確使用設計模式具有以下優(yōu)點。

·可以提高程序員的思維能力、編程能力和設計能力。

·使程序設計更加標準化、代碼編制更加工程化,使軟件開發(fā)效率大大提高,從而縮短軟件的開發(fā)周期。

·使設計的代碼可重用性高、可讀性強、可靠性高、靈活性好、可維護性強。

設計模式分類有哪些分類?

創(chuàng)建型模式

用于描述“怎樣創(chuàng)建對象”,它的主要特點是“將對象的創(chuàng)建與使用分離”。GoF(四人組)書中提供了單例、原型、工廠方法、抽象工廠、建造者等 5 種創(chuàng)建型模式。

結構型模式

用于描述如何將類或對象按某種布局組成更大的結構,GoF(四人組)書中提供了代理、適配器、橋接、裝飾、外觀、享元、組合等 7 種結構型模式。

行為型模式

用于描述類或對象之間怎樣相互協(xié)作共同完成單個對象無法單獨完成的任務,以及怎樣分配職責。GoF(四人組)書中提供了模板方法、策略、命令、職責鏈、狀態(tài)、觀察者、中介者、迭代器、訪問者、備忘錄、解釋器等 11 種行為型模式。



猜你喜歡:

什么是Java語言 java是做什么的?

什么是JAVA常量?

Java swing是什么?有什么作用?

Java集合的分類有哪些?

黑馬程序員java開發(fā)培訓課程

分享到:
在線咨詢 我要報名
和我們在線交談!