在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    開發(fā)人員應(yīng)該知道的SOLID 原則

    開發(fā)人員應(yīng)該知道的SOLID 原則

    SOLID 原則

    如果熟悉面向?qū)ο缶幊?,可能聽說過SOLID原則。

    通過插圖更好地理解這些原則,并強(qiáng)調(diào)每個(gè)原則的目標(biāo)。

    您會(huì)看到,其中一些原則可能看起來(lái)相似,但它們的目標(biāo)不同。有可能在滿足一個(gè)原則的同時(shí)違反另一個(gè)原則,即使它們是相似的。

    為了簡(jiǎn)單起見,我將使用“類”這個(gè)詞,但請(qǐng)注意它也可以應(yīng)用于本文中的函數(shù)、方法或模塊。

    更新*

    我收到了一些關(guān)于本文中的 Open Closed 違反單一職責(zé)原則的評(píng)論。請(qǐng)注意,本文的目的是獨(dú)立地解釋這些原則中的每一個(gè)。 此外,職責(zé)(或角色)與行動(dòng)不同。在 SRP 中,我使用了“I am Painter”,在 Open-Closed 中,我使用了“I can Paint”。 重要的是要注意這一點(diǎn),因?yàn)榭梢詧?zhí)行多個(gè)操作來(lái)履行職責(zé)(或角色)。該類應(yīng)該有一個(gè)責(zé)任(SRP),但其履行該責(zé)任的功能應(yīng)該對(duì)擴(kuò)展(OCP)開放。

    現(xiàn)在,讓我們開始吧!

    堅(jiān)實(shí)的原則

    S——單一職責(zé)

    一個(gè)類應(yīng)該有一個(gè)單一的職責(zé)

    如果一個(gè)類有很多職責(zé),它會(huì)增加錯(cuò)誤的可能性,因?yàn)楦钠渎氊?zé)之一可能會(huì)在您不知情的情況下影響其他職責(zé)。

    目標(biāo)

    該原則旨在分離行為,以便如果由于您的更改而出現(xiàn)錯(cuò)誤,它不會(huì)影響其他不相關(guān)的行為。

    O – 開閉原則

    類應(yīng)該對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉

    更改類的當(dāng)前行為將影響使用該類的所有系統(tǒng)。

    如果您希望類執(zhí)行更多功能,理想的方法是添加到已經(jīng)存在的功能而不是更改它們。

    目標(biāo)

    這個(gè)原則旨在擴(kuò)展一個(gè)類的行為而不改變?cè)擃惖默F(xiàn)有行為。這是為了避免在使用類的任何地方引起錯(cuò)誤。

    L – 里氏替換原則

    如果 S 是 T 的子類型,則程序中 T 類型的對(duì)象可以被 S 類型的對(duì)象替換,而不會(huì)改變?cè)摮绦虻娜魏嗡鑼傩浴?/p>

    當(dāng)子類不能執(zhí)行與其父類相同的操作時(shí),這可能會(huì)導(dǎo)致錯(cuò)誤。

    子類應(yīng)該能夠處理相同的請(qǐng)求并傳遞與父類相同的結(jié)果,或者它可以傳遞相同類型的結(jié)果。

    圖片顯示父類交付咖啡(它可以是任何類型的咖啡)。兒子可以制作卡布奇諾,因?yàn)樗且环N特定類型的咖啡,但不能送水。

    如果子類不滿足這些要求,則意味著子類被徹底改變,違反了這一原則。

    目標(biāo)

    該原則旨在強(qiáng)制一致性,以便可以以相同的方式使用父類或其子類而不會(huì)出現(xiàn)任何錯(cuò)誤。

    I -接口隔離

    不應(yīng)強(qiáng)迫客戶依賴他們不使用的方法。

    接口隔離原則表明客戶端不應(yīng)該被強(qiáng)迫實(shí)現(xiàn)一些他們不會(huì)使用的接口,應(yīng)該把胖接口中的方法分組,然后用多個(gè)接口替代它,每個(gè)接口服務(wù)于一個(gè)子模塊。簡(jiǎn)單地說,就是使用多個(gè)專門的接口比使用單個(gè)接口要好很多。

    目標(biāo)

    這個(gè)原則旨在將一組動(dòng)作拆分成更小的集合,以便一個(gè)類只執(zhí)行它需要的一組動(dòng)作。

    D -依賴倒置

    – 高級(jí)模塊不應(yīng)依賴于低級(jí)模塊。兩者都應(yīng)該依賴于抽象。 – 抽象不應(yīng)依賴于細(xì)節(jié)。細(xì)節(jié)應(yīng)該取決于抽象。

    首先,讓我們更簡(jiǎn)單地定義這里使用的術(shù)語(yǔ)

    高級(jí)模塊(或類):使用工具執(zhí)行操作的類。

    低級(jí)模塊(或類):執(zhí)行操作所需的工具

    Abstraction:表示連接兩個(gè)類的接口。

    開閉原則(OCP)是面向?qū)ο笤O(shè)計(jì)原則的基礎(chǔ)也是整個(gè)設(shè)計(jì)的一個(gè)終極目標(biāo),而依賴倒置原則(DIP )則是實(shí)現(xiàn)OCP原則的一個(gè)基礎(chǔ),換句話說開閉原則(OCP)是你蓋一棟大樓的設(shè)計(jì)藍(lán)圖,那么依賴倒置原則就是蓋這棟大樓的一個(gè)鋼構(gòu)框架。

    目標(biāo)

    該原則旨在通過引入接口來(lái)減少高級(jí)類對(duì)低級(jí)類的依賴。

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
    (0)
    用戶投稿
    上一篇 2022年6月21日 06:30
    下一篇 2022年6月21日 06:30

    相關(guān)推薦

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息