日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

設(shè)計(jì)模式-起航篇

 碼農(nóng)9527 2021-11-18

 前言

  設(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)智了。

設(shè)計(jì)原則名稱(chēng)
定義

單一職責(zé)原則(Single Responsibility Principle, SRP)

一個(gè)類(lèi)只負(fù)責(zé)一個(gè)功能領(lǐng)域中的相應(yīng)職責(zé)

開(kāi)閉原則(Open-Closed Principle,

OCP)

軟件實(shí)體應(yīng)對(duì)擴(kuò)展開(kāi)放,對(duì)修改關(guān)閉,程序需要進(jìn)行擴(kuò)展時(shí),不能修改源代碼,實(shí)現(xiàn)熱插拔效果

里氏代換原則(Liskov Substitution

Principle, LSP)

所有引用基類(lèi)對(duì)象的地方能夠透明地使用其子類(lèi)的對(duì)象

接口隔離原則(Interface Segregation Principle, ISP)

使用多個(gè)專(zhuān)門(mén)的接口,而不使用單一的總接口

依賴(lài)倒轉(zhuǎn)原則(Dependence Inversion Principle, DIP)

開(kāi)閉原則的基礎(chǔ),面向接口編程,依賴(lài)抽象而不依賴(lài)具體

合成復(fù)用原則(Composite Reuse

Principle, CRP)

盡量使用對(duì)象組合,而不是繼承來(lái)達(dá)到復(fù)用的目的

迪米特法則(Law of Demeter, LoD)

一個(gè)實(shí)體應(yīng)當(dāng)盡可能少地與其它實(shí)體發(fā)生相互作用

  學(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)也是大家需要注意的。

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多