OOP 6大設(shè)計原則

OCP(open close principle)

開閉原則:類辐啄、模塊、函數(shù)等對擴展開放烦租,對修改關(guān)閉豺鼻;

SRP(single responsibility principle)

職責單一原則:有且只有一個原因引起類的變更;

LSP(liskov substitution principle)

里氏替換原則:所有的已用基類的地方必須能透明的使用其子類的對象挨约;

通俗點講:只要父類能出現(xiàn)的地方子類就可以出現(xiàn)味混,而且替換為子類也不產(chǎn)生任何異常錯誤,

反之則不然诫惭。這主要體現(xiàn)在翁锡,我們經(jīng)常使用抽象類/基類做為方法參數(shù),

具體使用哪個子類作為參數(shù)傳入進去夕土,由調(diào)用者決定馆衔。

這條原則包含以下幾個方面:

子類必須完全實現(xiàn)父類的方法

子類可以有自己的個性外觀(屬性)和行為(方法)

覆蓋或者實現(xiàn)父類方法時瘟判,參數(shù)可以被放大。即父類的某個方法參數(shù)為HashMap時角溃,子類參數(shù)可以是HashMap拷获,也可以是Map或者更大

覆蓋或者實現(xiàn)父類的方法時,返回結(jié)果可以被縮小减细。即父類的某個方法返回類型是Map匆瓜,子類可以是Map,也可以是HashMap或者更小未蝌。

DIP(dependence inversion principle)

依賴倒置原則:高層模塊不要依賴低層模塊驮吱,所以依賴都應該是抽象的,抽象不應該依賴于具體細節(jié)而萧吠,具體細節(jié)應該依賴于抽象

底層模塊:不可分割的原子邏輯就是低層模塊

高層模塊:低層模塊的組裝合成后就是高層模塊

抽象:Java中體現(xiàn)為基類糠馆,抽象類,接口怎憋,而不單指抽象類

細節(jié):體現(xiàn)為子類又碌,實現(xiàn)類

通俗點講,該原則包含以下幾點要素:

模塊間的依賴應該通過抽象發(fā)生绊袋,具體實現(xiàn)類之間不應該建立依賴關(guān)系

接口或者抽象類不依賴于實現(xiàn)類毕匀,否則就失去了抽象的意義

實現(xiàn)類依賴于接口或者抽象類

總結(jié)起來,一句話:”面向接口編程“癌别。

ISP(Interface-Segregation Principle)

接口隔離原則:客戶端不應該依賴它不需要的接口皂岔;類間的依賴應該建立在最小的接口上

通俗點講:使用接口時應該建立單一接口,不要建立臃腫龐大的接口展姐,盡量給調(diào)用者提供專門的接口躁垛,而非多功能接口。

LoD(Low of Demeter)

迪米特法則:又稱最少知識原則(Least Knowledge Principle圾笨, LKP)教馆,一個對象應該對其他對象有最少的了解。

通俗點講:一個類應該對自己需要耦合或者調(diào)用的類知道越少越好擂达,被耦合或者調(diào)用的類內(nèi)部和我沒有關(guān)系土铺,我不需要的東西你就別public了吧。

迪米特法則包含以下幾點要素:

只和朋友類交流:只耦合該耦合的類

朋友間也是有距離的:減少不該public的方法板鬓,向外提供一個簡潔的訪問

自家的方法就自己創(chuàng)建:只要該方法不會增加內(nèi)部的負擔悲敷,也不會增加類間耦合

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市俭令,隨后出現(xiàn)的幾起案子后德,更是在濱河造成了極大的恐慌,老刑警劉巖抄腔,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瓢湃,死亡現(xiàn)場離奇詭異窟赏,居然都是意外死亡,警方通過查閱死者的電腦和手機箱季,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來棍掐,“玉大人藏雏,你說我怎么就攤上這事∽骰停” “怎么了掘殴?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長粟誓。 經(jīng)常有香客問我奏寨,道長,這世上最難降的妖魔是什么鹰服? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任病瞳,我火速辦了婚禮,結(jié)果婚禮上悲酷,老公的妹妹穿的比我還像新娘套菜。我一直安慰自己,他們只是感情好设易,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布逗柴。 她就那樣靜靜地躺著,像睡著了一般顿肺。 火紅的嫁衣襯著肌膚如雪戏溺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天屠尊,我揣著相機與錄音旷祸,去河邊找鬼。 笑死讼昆,一個胖子當著我的面吹牛肋僧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播控淡,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼嫌吠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了掺炭?” 一聲冷哼從身側(cè)響起辫诅,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎涧狮,沒想到半個月后炕矮,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體么夫,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年肤视,在試婚紗的時候發(fā)現(xiàn)自己被綠了档痪。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡邢滑,死狀恐怖腐螟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情困后,我是刑警寧澤乐纸,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站摇予,受9級特大地震影響汽绢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜侧戴,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一宁昭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧酗宋,春花似錦久窟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至丹锹,卻和暖如春稀颁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背楣黍。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工匾灶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人租漂。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓阶女,卻偏偏與公主長得像,于是被迫代替她去往敵國和親哩治。 傳聞我的和親對象是個殘疾皇子秃踩,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359

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

  • 程序設(shè)計的6大原則: 單一職責原則里氏替換原則依賴倒置原則接口隔離原則迪米特法則開閉原則 從根本學好,理解為什么要...
    silencefun閱讀 2,412評論 1 4
  • 單一職責原則 (SRP) 全稱 SRP , Single Responsibility Principle 單一職...
    米莉_L閱讀 1,768評論 2 5
  • 面向?qū)ο蟮?個基本要素: 封裝业筏、繼承憔杨、多態(tài) 面向?qū)ο蟮?個基本設(shè)計原則: 單一職責原則(Single-Respos...
    badcyc閱讀 863評論 0 4
  • 設(shè)計模式之六大原則(轉(zhuǎn)載) 關(guān)于設(shè)計模式的六大設(shè)計原則的資料網(wǎng)上很多...
    霄霄霄霄閱讀 900評論 0 1
  • 做后臺產(chǎn)品的時候,為了避免設(shè)計地凌亂蒜胖,想了解一些系統(tǒng)設(shè)計模式思想消别,于是找高內(nèi)聚低耦合相關(guān)的文章抛蚤。這篇文章是摘自網(wǎng)友...
    徐薇薇閱讀 2,200評論 0 0