亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

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

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

                SOLID 原則

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

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

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

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

                更新*

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

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

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

                目標(biāo)

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

                L – 里氏替換原則

                如果 S 是 T 的子類型,則程序中 T 類型的對象可以被 S 類型的對象替換,而不會(huì)改變該程序的任何所需屬性。

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

                子類應(yī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è)子模塊。簡單地說,就是使用多個(gè)專門的接口比使用單個(gè)接口要好很多。

                目標(biāo)

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

                D -依賴倒置

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

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

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

                低級模塊(或類):執(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)

                該原則旨在通過引入接口來減少高級類對低級類的依賴。

                鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
                用戶投稿
                上一篇 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é)假日休息