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

總原則:開(kāi)閉原則(Open Close Principle)

開(kāi)閉原則就是說(shuō)對(duì)擴(kuò)展開(kāi)放龙助,對(duì)修改關(guān)閉锅知。在程序需要進(jìn)行拓展的時(shí)候粱腻,不能去修改原有的代碼,而是要擴(kuò)展原有代碼尼夺,實(shí)現(xiàn)一個(gè)熱插拔的效果尊残。所以一句話概括就是:為了使程序的擴(kuò)展性好,易于維護(hù)和升級(jí)淤堵。想要達(dá)到這樣的效果寝衫,我們需要使用接口和抽象類等,后面的具體設(shè)計(jì)中我們會(huì)提到這點(diǎn)拐邪。

1慰毅、單一職責(zé)原則

不要存在多于一個(gè)導(dǎo)致類變更的原因,也就是說(shuō)每個(gè)類應(yīng)該實(shí)現(xiàn)單一的職責(zé)扎阶,如若不然汹胃,就應(yīng)該把類拆分。

2东臀、里氏替換原則(Liskov Substitution Principle)

里氏代換原則(Liskov Substitution Principle LSP)面向?qū)ο笤O(shè)計(jì)的基本原則之一着饥。 里氏代換原則中說(shuō),任何基類可以出現(xiàn)的地方啡邑,子類一定可以出現(xiàn)贱勃。 LSP是繼承復(fù)用的基石,只有當(dāng)衍生類可以替換掉基類谤逼,軟件單位的功能不受到影響時(shí)贵扰,基類才能真正被復(fù)用,而衍生類也能夠在基類的基礎(chǔ)上增加新的行為流部。里氏代換原則是對(duì)“開(kāi)-閉”原則的補(bǔ)充戚绕。實(shí)現(xiàn)“開(kāi)-閉”原則的關(guān)鍵步驟就是抽象化。而基類與子類的繼承關(guān)系就是抽象化的具體實(shí)現(xiàn)枝冀,所以里氏代換原則是對(duì)實(shí)現(xiàn)抽象化的具體步驟的規(guī)范舞丛。—— From Baidu 百科

歷史替換原則中果漾,子類對(duì)父類的方法盡量不要重寫和重載球切。因?yàn)楦割惔砹硕x好的結(jié)構(gòu),通過(guò)這個(gè)規(guī)范的接口與外界交互绒障,子類不應(yīng)該隨便破壞它吨凑。

3、依賴倒轉(zhuǎn)原則(Dependence Inversion Principle)

這個(gè)是開(kāi)閉原則的基礎(chǔ),具體內(nèi)容:面向接口編程鸵钝,依賴于抽象而不依賴于具體糙臼。寫代碼時(shí)用到具體類時(shí),不與具體類交互恩商,而與具體類的上層接口交互变逃。

4、接口隔離原則(Interface Segregation Principle)

這個(gè)原則的意思是:每個(gè)接口中不存在子類用不到卻必須實(shí)現(xiàn)的方法怠堪,如果不然揽乱,就要將接口拆分。使用多個(gè)隔離的接口研叫,比使用單個(gè)接口(多個(gè)接口方法集合到一個(gè)的接口)要好锤窑。

5、迪米特法則(最少知道原則)(Demeter Principle)

就是說(shuō):一個(gè)類對(duì)自己依賴的類知道的越少越好嚷炉。也就是說(shuō)無(wú)論被依賴的類多么復(fù)雜渊啰,都應(yīng)該將邏輯封裝在方法的內(nèi)部,通過(guò)public方法提供給外部申屹。這樣當(dāng)被依賴的類變化時(shí)绘证,才能最小的影響該類。

最少知道原則的另一個(gè)表達(dá)方式是:只與直接的朋友通信哗讥。類之間只要有耦合關(guān)系嚷那,就叫朋友關(guān)系。耦合分為依賴杆煞、關(guān)聯(lián)魏宽、聚合、組合等决乎。我們稱出現(xiàn)為成員變量队询、方法參數(shù)、方法返回值中的類為直接朋友构诚。局部變量蚌斩、臨時(shí)變量則不是直接的朋友。我們要求陌生的類不要作為局部變量出現(xiàn)在類中范嘱。

6送膳、合成復(fù)用原則(Composite Reuse Principle)

原則是盡量首先使用合成/聚合的方式,而不是使用繼承丑蛤。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末叠聋,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子受裹,更是在濱河造成了極大的恐慌晒奕,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件名斟,死亡現(xiàn)場(chǎng)離奇詭異脑慧,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)砰盐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門闷袒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人岩梳,你說(shuō)我怎么就攤上這事囊骤。” “怎么了冀值?”我有些...
    開(kāi)封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵也物,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我列疗,道長(zhǎng)滑蚯,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任抵栈,我火速辦了婚禮告材,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘古劲。我一直安慰自己斥赋,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布产艾。 她就那樣靜靜地躺著疤剑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪闷堡。 梳的紋絲不亂的頭發(fā)上隘膘,一...
    開(kāi)封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音缚窿,去河邊找鬼棘幸。 笑死,一個(gè)胖子當(dāng)著我的面吹牛倦零,可吹牛的內(nèi)容都是我干的误续。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼扫茅,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蹋嵌!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起葫隙,我...
    開(kāi)封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤栽烂,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腺办,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡焰手,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了怀喉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片书妻。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖躬拢,靈堂內(nèi)的尸體忽然破棺而出躲履,到底是詐尸還是另有隱情,我是刑警寧澤聊闯,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布工猜,位于F島的核電站,受9級(jí)特大地震影響菱蔬,放射性物質(zhì)發(fā)生泄漏篷帅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一汗销、第九天 我趴在偏房一處隱蔽的房頂上張望犹褒。 院中可真熱鬧,春花似錦弛针、人聲如沸叠骑。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)宙枷。三九已至,卻和暖如春茧跋,著一層夾襖步出監(jiān)牢的瞬間慰丛,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工瘾杭, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留诅病,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓粥烁,卻偏偏與公主長(zhǎng)得像贤笆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子讨阻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容