設(shè)計(jì)模式的基本原則

1.單一職責(zé)原則

2.開(kāi)放封閉原則

3.依賴(lài)倒轉(zhuǎn)原則

4.里氏代換原則

5.迪米特法則

6.合成/聚合復(fù)用原則

7.接口隔離原則

一、單一職責(zé)原則
概念:就一個(gè)類(lèi)而言,應(yīng)該僅有一個(gè)引起它變化的原因。
二、開(kāi)放-封閉原則
概念:軟件實(shí)體(類(lèi)、模塊、函數(shù)等等)應(yīng)該可以擴(kuò)展,但是不可修改。
該原則有兩個(gè)特征:1、對(duì)于擴(kuò)展是開(kāi)放的。2、對(duì)于更改是封閉的。
無(wú)論模塊是多么的‘封閉’,都會(huì)存在一些無(wú)法對(duì)之封閉的變化。既然不可能完全封閉,設(shè)計(jì)人員必須對(duì)于他設(shè)計(jì)的模塊應(yīng)該對(duì)哪種變化封閉做出選擇。他必須先猜測(cè)出最有可能發(fā)生的變化種類(lèi),然后構(gòu)造抽象來(lái)隔離那些變化。
三、依賴(lài)倒轉(zhuǎn)原則
概念:A.高層模塊不應(yīng)該依賴(lài)低層模塊,兩個(gè)都應(yīng)該依賴(lài)抽象。B.抽象不應(yīng)該依賴(lài)于細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴(lài)于抽象。
高低層模塊都依賴(lài)于抽象
四、里氏代換原則
概念:子類(lèi)必須能夠替換掉它們的父類(lèi)型。
一個(gè)軟件實(shí)體如果使用的是一個(gè)父類(lèi)的話,那么一定適用于其子類(lèi),而且它察覺(jué)不出父類(lèi)對(duì)象和子類(lèi)對(duì)象的區(qū)別。也就是說(shuō),在軟件里面,把父類(lèi)都替換成它的子類(lèi),程序的行為沒(méi)有變化。
只有當(dāng)子類(lèi)可以替換掉父類(lèi),軟件單位的功能不受到影響時(shí),父類(lèi)才能真正被復(fù)用,而子類(lèi)也能夠在父類(lèi)的基礎(chǔ)上增加新的行為。
五、迪米特法則
1.如果兩個(gè)類(lèi)不必彼此直接通信,那么這兩個(gè)類(lèi)就不應(yīng)當(dāng)發(fā)生直接的相互作用。如果其中一個(gè)類(lèi)需要調(diào)用另一個(gè)類(lèi)的某一個(gè)方法的話,可以通過(guò)第三者轉(zhuǎn)發(fā)這個(gè)調(diào)用。根本思想是強(qiáng)調(diào)了類(lèi)之間的松耦合。
六、合成/聚合復(fù)用原則
1.概念:盡量使用合成/聚合,盡量不要使用類(lèi)繼承。
2.聚合表示一種弱的‘擁有’關(guān)系,體現(xiàn)的是A對(duì)象可以包含B對(duì)象,但B對(duì)象不是A對(duì)象的一部分;合成則是一種強(qiáng)的‘擁有’關(guān)系,體現(xiàn)了嚴(yán)格的部分和整體的關(guān)系,部分和整體的生命周期一樣。
· 比方說(shuō),大雁有兩個(gè)翅膀,翅膀與大雁是部分和整體的關(guān)系,并且它們的生命周期是相同的,于是大雁和翅膀就是合成關(guān)系。而大雁是群居動(dòng)物,所以每只大雁都是屬于一個(gè)雁群,一個(gè)雁群可以有多只大雁,所以大雁和雁群是聚合關(guān)系。
七、接口隔離原則
1.概念:一個(gè)類(lèi)對(duì)另一個(gè)類(lèi)的依賴(lài)應(yīng)該建立在最小的接口上。
2.建立單一接口,不要建立龐大臃腫的接口;盡量細(xì)化接口,接口中的方法盡量少。也就是說(shuō),我們要為各個(gè)類(lèi)建立專(zhuān)用的接口,而不要試圖建立一個(gè)很龐大的接口供所有依賴(lài)它的類(lèi)調(diào)用。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容