溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

設(shè)計(jì)模式有哪些設(shè)計(jì)原則

發(fā)布時(shí)間:2021-02-05 09:10:55 來(lái)源:億速云 閱讀:419 作者:小新 欄目:互聯(lián)網(wǎng)科技

這篇文章主要介紹設(shè)計(jì)模式有哪些設(shè)計(jì)原則,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

設(shè)計(jì)模式六大原則:1、單一原則;2、里氏替換原則;3、依賴(lài)倒置原則;4、接口隔離原則;5、迪米特原則;6、開(kāi)閉原則。

設(shè)計(jì)模式六大原則:

1、單一原則(Single Responsibility Principle):一個(gè)類(lèi)或者一個(gè)方法只負(fù)責(zé)一項(xiàng)職責(zé),盡量做到類(lèi)的只有一個(gè)行為原因引起變化;

  a、業(yè)務(wù)對(duì)象(BO business object)、業(yè)務(wù)邏輯(BL business logic)拆分;

2、里氏替換原則(LSP liskov substitution principle):子類(lèi)可以擴(kuò)展父類(lèi)的功能,但不能改變?cè)懈割?lèi)的功能;(本質(zhì)其實(shí)就是c++的多態(tài))

 ?。康模涸鰪?qiáng)程序的健壯性)實(shí)際項(xiàng)目中,每個(gè)子類(lèi)對(duì)應(yīng)不同的業(yè)務(wù)含義,使父類(lèi)作為參數(shù),傳遞不同的子類(lèi)完成不同的業(yè)務(wù)邏輯。

3、依賴(lài)倒置原則(dependence inversion principle):面向接口編程;(通過(guò)接口作為參數(shù)實(shí)現(xiàn)應(yīng)用場(chǎng)景)

  抽象就是接口或者抽象類(lèi),細(xì)節(jié)就是實(shí)現(xiàn)類(lèi)

  含義:

    上層模塊不應(yīng)該依賴(lài)下層模塊,兩者應(yīng)依賴(lài)其抽象;

    抽象不應(yīng)該依賴(lài)細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴(lài)抽象;

通俗點(diǎn)就是說(shuō)變量或者傳參數(shù),盡量使用抽象類(lèi),或者接口;

【接口負(fù)責(zé)定義public屬性和方法,并且申明與其他對(duì)象依賴(lài)關(guān)系,抽象類(lèi)負(fù)責(zé)公共構(gòu)造部分的實(shí)現(xiàn),實(shí)現(xiàn)類(lèi)準(zhǔn)確的實(shí)現(xiàn)業(yè)務(wù)邏輯】

4、接口隔離原則(interface segregation principle):建立單一接口;(擴(kuò)展為類(lèi)也是一種接口,一切皆接口)

   定義:

    a.客戶(hù)端不應(yīng)該依賴(lài)它不需要的接口;

    b.類(lèi)之間依賴(lài)關(guān)系應(yīng)該建立在最小的接口上;

簡(jiǎn)單理解:復(fù)雜的接口,根據(jù)業(yè)務(wù)拆分成多個(gè)簡(jiǎn)單接口;(對(duì)于有些業(yè)務(wù)的拆分多看看適配器的應(yīng)用)

【接口的設(shè)計(jì)粒度越小,系統(tǒng)越靈活,但是靈活的同時(shí)結(jié)構(gòu)復(fù)雜性提高,開(kāi)發(fā)難度也會(huì)變大,維護(hù)性降低】   

5、迪米特原則(law of demeter LOD):最少知道原則,盡量降低類(lèi)與類(lèi)之間的耦合;

一個(gè)對(duì)象應(yīng)該對(duì)其他對(duì)象有最少的了解

6、開(kāi)閉原則(open closed principle):用抽象構(gòu)建架構(gòu),用實(shí)現(xiàn)擴(kuò)展原則;

以上是“設(shè)計(jì)模式有哪些設(shè)計(jì)原則”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI