前言 設(shè)計(jì)模式其實(shí)就是前人們的在開(kāi)發(fā)過(guò)程中總結(jié)出來(lái)的對(duì)特定問(wèn)題的解決方案。設(shè)計(jì)模式和編程語(yǔ)言沒(méi)有必然的聯(lián)系,它的目的是解決代碼可復(fù)用性、可維護(hù)性、可擴(kuò)展性、可讀性、穩(wěn)健性以及安全性。 GOF-23種設(shè)計(jì)模式1994年,Erich Gamma、Richard Helm、Ralph Johnson與John Vlissides撰寫(xiě)了Design Patterns:Elements of Reusable Object-Oriented software(設(shè)計(jì)模式可復(fù)用面向?qū)ο筌浖幕A(chǔ))這本書(shū),書(shū)中介紹了23種設(shè)計(jì)模式,也是Java程序員口中常提的設(shè)計(jì)模式,但實(shí)際的設(shè)計(jì)模式遠(yuǎn)超23種。那GOF又是什么?它是上面提到的四位作者的合稱(chēng)(Gang of Four 四人幫)。 面向?qū)ο缶幊毯兔嫦驅(qū)ο笤O(shè)計(jì)原則相信對(duì)設(shè)計(jì)模式有一定了解的老鐵肯定有聽(tīng)過(guò)5種、6種和7種的版本。 其實(shí)最開(kāi)始的設(shè)計(jì)原則是5種,也叫SOLID原則,也是下列表格中前五種原則的英文首字母組合。 而6種原則是在5種的基礎(chǔ)上增加了迪米特法則,也是現(xiàn)在絕大多數(shù)書(shū)中的所講的版本。 7種則是在6種的基礎(chǔ)上增加了合成復(fù)用原則,但是7種存在一些爭(zhēng)議,到底是堅(jiān)持6種還是7種就仁者見(jiàn)仁智者見(jiàn)智了。
學(xué)設(shè)計(jì)模式有什么用學(xué)設(shè)計(jì)模式的原因我覺(jué)得基本逃不開(kāi)以下這四點(diǎn): 應(yīng)付面試(最直觀的點(diǎn)) 為了炫技 提升個(gè)人編碼內(nèi)功 為了更好的理解開(kāi)源框架設(shè)計(jì)思想 ... GOF-23設(shè)計(jì)模式類(lèi)型在GOF-23設(shè)計(jì)模式中,對(duì)23種設(shè)計(jì)模式進(jìn)行了分類(lèi),分別為創(chuàng)建型、結(jié)構(gòu)型和行為型。 創(chuàng)建型:強(qiáng)調(diào)的是對(duì)象創(chuàng)建的模式,而不是直接實(shí)例化對(duì)象。 結(jié)構(gòu)型:關(guān)注類(lèi)和對(duì)象的組合,使用繼承來(lái)組合接口并定義組合對(duì)象以獲得新功能的方法。說(shuō)的再白一點(diǎn)就是通過(guò)組合類(lèi)或?qū)ο笮纬尚碌臄?shù)據(jù)結(jié)構(gòu)去解決更為復(fù)雜的需求。 行為型:關(guān)注對(duì)象之間的通信。 講到這里,肯定有人會(huì)說(shuō)23種設(shè)計(jì)模式到底是哪23種。別急,下面就給大家附上圖。 以上所介紹的內(nèi)容大家也都可以在wiki百科中找到,地址如下: 地址: https://en./wiki/Design_Patterns 總結(jié)好了,本文到此也就結(jié)束了,最后咱們來(lái)一個(gè)總結(jié)回顧下上面的知識(shí)點(diǎn)。 通過(guò)本篇文章我們可以學(xué)到如下幾點(diǎn): 什么是設(shè)計(jì)模式 什么是GOF-23設(shè)計(jì)模式 面向?qū)ο缶幊毯兔嫦驅(qū)ο笤O(shè)計(jì)原則 學(xué)設(shè)計(jì)模式有什么用 GOF-23設(shè)計(jì)模式種類(lèi)劃分 最后再給大家多提一嘴,Java設(shè)計(jì)模式也是指的GOF-23設(shè)計(jì)模式,但是這種叫法是不對(duì)的。靜態(tài)語(yǔ)言和動(dòng)態(tài)語(yǔ)言以及各種語(yǔ)言的特性,并不是所有的設(shè)計(jì)模式跨語(yǔ)言使用都是合適的,有些設(shè)計(jì)模式剛誕生的時(shí)候是跟作者當(dāng)時(shí)所用的語(yǔ)言有一些關(guān)聯(lián),但是換到其它語(yǔ)言也許會(huì)有其它的解決方案,這一點(diǎn)也是大家需要注意的。 |
|
來(lái)自: 碼農(nóng)9527 > 《Java》