乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

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

       前言

        設(shè)計(jì)模式其實(shí)就是前人們的在開發(fā)過程中總結(jié)出來的對特定問題的解決方案。設(shè)計(jì)模式和編程語言沒有必然的聯(lián)系,它的目的是解決代碼可復(fù)用性、可維護(hù)性、可擴(kuò)展性、可讀性、穩(wěn)健性以及安全性。

        GOF-23種設(shè)計(jì)模式

        1994年,Erich Gamma、Richard Helm、Ralph Johnson與John Vlissides撰寫了Design Patterns:Elements of Reusable Object-Oriented software(設(shè)計(jì)模式可復(fù)用面向?qū)ο筌浖幕A(chǔ))這本書,書中介紹了23種設(shè)計(jì)模式,也是Java程序員口中常提的設(shè)計(jì)模式,但實(shí)際的設(shè)計(jì)模式遠(yuǎn)超23種。那GOF又是什么?它是上面提到的四位作者的合稱(Gang of Four 四人幫)。

        面向?qū)ο缶幊毯兔嫦驅(qū)ο笤O(shè)計(jì)原則

        相信對設(shè)計(jì)模式有一定了解的老鐵肯定有聽過5種、6種和7種的版本。

        其實(shí)最開始的設(shè)計(jì)原則是5種,也叫SOLID原則,也是下列表格中前五種原則的英文首字母組合。

        而6種原則是在5種的基礎(chǔ)上增加了迪米特法則,也是現(xiàn)在絕大多數(shù)書中的所講的版本。

        7種則是在6種的基礎(chǔ)上增加了合成復(fù)用原則,但是7種存在一些爭議,到底是堅(jiān)持6種還是7種就仁者見仁智者見智了。

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

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

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

      開閉原則(Open-Closed Principle,

      OCP)

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

      里氏代換原則(Liskov Substitution

      Principle, LSP)

      所有引用基類對象的地方能夠透明地使用其子類的對象

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

      使用多個(gè)專門的接口,而不使用單一的總接口

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

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

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

      Principle, CRP)

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

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

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

        學(xué)設(shè)計(jì)模式有什么用

        學(xué)設(shè)計(jì)模式的原因我覺得基本逃不開以下這四點(diǎn):

        應(yīng)付面試(最直觀的點(diǎn))

        為了炫技

        提升個(gè)人編碼內(nèi)功

        為了更好的理解開源框架設(shè)計(jì)思想

        ...

        GOF-23設(shè)計(jì)模式類型

        在GOF-23設(shè)計(jì)模式中,對23種設(shè)計(jì)模式進(jìn)行了分類,分別為創(chuàng)建型、結(jié)構(gòu)型和行為型。

        創(chuàng)建型:強(qiáng)調(diào)的是對象創(chuàng)建的模式,而不是直接實(shí)例化對象。

        結(jié)構(gòu)型:關(guān)注類和對象的組合,使用繼承來組合接口并定義組合對象以獲得新功能的方法。說的再白一點(diǎn)就是通過組合類或?qū)ο笮纬尚碌臄?shù)據(jù)結(jié)構(gòu)去解決更為復(fù)雜的需求。

        行為型:關(guān)注對象之間的通信。

        講到這里,肯定有人會說23種設(shè)計(jì)模式到底是哪23種。別急,下面就給大家附上圖。

        以上所介紹的內(nèi)容大家也都可以在wiki百科中找到,地址如下:

        地址:

        https://en./wiki/Design_Patterns

        總結(jié)

        好了,本文到此也就結(jié)束了,最后咱們來一個(gè)總結(jié)回顧下上面的知識點(diǎn)。

        通過本篇文章我們可以學(xué)到如下幾點(diǎn):

        什么是設(shè)計(jì)模式

        什么是GOF-23設(shè)計(jì)模式

        面向?qū)ο缶幊毯兔嫦驅(qū)ο笤O(shè)計(jì)原則

        學(xué)設(shè)計(jì)模式有什么用

        GOF-23設(shè)計(jì)模式種類劃分

        最后再給大家多提一嘴,Java設(shè)計(jì)模式也是指的GOF-23設(shè)計(jì)模式,但是這種叫法是不對的。靜態(tài)語言和動態(tài)語言以及各種語言的特性,并不是所有的設(shè)計(jì)模式跨語言使用都是合適的,有些設(shè)計(jì)模式剛誕生的時(shí)候是跟作者當(dāng)時(shí)所用的語言有一些關(guān)聯(lián),但是換到其它語言也許會有其它的解決方案,這一點(diǎn)也是大家需要注意的。

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多