開放—封閉原則篡殷、依賴倒轉(zhuǎn)原則

??? 在編寫代碼的過程中钝吮,無(wú)論是多么封閉的模塊,都會(huì)存在一些無(wú)法對(duì)之封閉的變化。既然不可能完全封閉奇瘦,設(shè)計(jì)人員必須對(duì)于他設(shè)計(jì)的模塊應(yīng)該對(duì)哪種變化封閉做出選擇棘催。必須事先猜測(cè)出最有可能發(fā)生變化的種類,然后構(gòu)造抽象來(lái)隔離這些變化耳标。

開放封閉原則

??? 如果不使用開放—封閉原則醇坝,增加一個(gè)功能只是在client類中完成,那么后來(lái)再增加一個(gè)減法的算法次坡,那我們只能修改原來(lái)的這個(gè)類呼猪,如果每次修改都需要重新寫client算法類,這樣就會(huì)給我們帶來(lái)不必要的麻煩贸毕。如果我們?cè)谠O(shè)計(jì)之初就考慮增加一個(gè)抽象的運(yùn)算類郑叠,通過繼承和多態(tài)的方法來(lái)隔離具體的加減、乘除方法明棍,不僅可以滿足我們的業(yè)務(wù)需要乡革,還能在不改變client類的情況下增加功能,只需要增加相應(yīng)的子類就可以了摊腋。

? ? 開放—封閉原則是面向?qū)ο蟮暮诵乃诜邪妫浖?shí)體應(yīng)該是可擴(kuò)展,而不可修改的兴蒸。也就是說(shuō)视粮,對(duì)擴(kuò)展是開放的,而對(duì)修改是封閉的橙凳。因此蕾殴,開放封閉原則主要體現(xiàn)在兩個(gè)方面:對(duì)擴(kuò)展開放,意味著有新的需求或變化時(shí)岛啸,可以對(duì)現(xiàn)有代碼進(jìn)行擴(kuò)展钓觉,以適應(yīng)新的情況。對(duì)修改封閉坚踩,意味著類一旦設(shè)計(jì)完成荡灾,就可以獨(dú)立完成其工作,而不要對(duì)類進(jìn)行任何修改瞬铸。但是并不能對(duì)應(yīng)用程序中的每個(gè)部分都刻意抽象批幌,應(yīng)該拒絕不成熟的抽象。

???

???????????????????????????????????????????????????????????????????????????????? 依賴倒轉(zhuǎn)原則

依賴倒轉(zhuǎn)原則

??? 在編程時(shí)嗓节,我們的抽象類不應(yīng)該依賴于細(xì)節(jié)荧缘,細(xì)節(jié)應(yīng)該依賴于抽象。我們應(yīng)該針對(duì)于接口編程拦宣,而不是針對(duì)于實(shí)現(xiàn)編程胜宇。這個(gè)意思可能是說(shuō)耀怜,我們?cè)趯?shí)現(xiàn)功能的時(shí)候,功能可以隨意的改變桐愉,如果我們只注重細(xì)節(jié)财破,在修改的時(shí)候就顯得更麻煩。如果我們針對(duì)于接口編程从诲,我們只需要改變我們的實(shí)現(xiàn)類左痢,或者在子類中實(shí)現(xiàn)我們想要的功能,這樣就提高了可維護(hù)性系洛。



??????????????????????????????????????????????????????????????????????????????????????? 里氏代換原則

??? 里氏替換原則(Liskov Substitution Principle LSP)面向?qū)ο笤O(shè)計(jì)的基本原則之一俊性。 里氏替換原則中說(shuō),任何基類可以出現(xiàn)的地方描扯,子類一定可以出現(xiàn)定页。只有當(dāng)子類可以替換掉父類,軟件單位的功能才能不受影響時(shí)绽诚,父類才能真正的被復(fù)用典徊,而子類也能夠在父類的基礎(chǔ)上增加新的方法。


里氏代換原則

??? 由于子類的可替換性恩够,才使得父類模塊在無(wú)需修改的情況下就可以拓展卒落。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蜂桶,隨后出現(xiàn)的幾起案子儡毕,更是在濱河造成了極大的恐慌,老刑警劉巖扑媚,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腰湾,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡疆股,警方通過查閱死者的電腦和手機(jī)檐盟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)押桃,“玉大人,你說(shuō)我怎么就攤上這事导犹〕” “怎么了?”我有些...
    開封第一講書人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵谎痢,是天一觀的道長(zhǎng)磕昼。 經(jīng)常有香客問我,道長(zhǎng)节猿,這世上最難降的妖魔是什么票从? 我笑而不...
    開封第一講書人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任漫雕,我火速辦了婚禮,結(jié)果婚禮上峰鄙,老公的妹妹穿的比我還像新娘浸间。我一直安慰自己,他們只是感情好吟榴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開白布魁蒜。 她就那樣靜靜地躺著,像睡著了一般吩翻。 火紅的嫁衣襯著肌膚如雪兜看。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,245評(píng)論 1 299
  • 那天狭瞎,我揣著相機(jī)與錄音细移,去河邊找鬼。 笑死熊锭,一個(gè)胖子當(dāng)著我的面吹牛弧轧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播球涛,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼劣针,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了亿扁?” 一聲冷哼從身側(cè)響起捺典,我...
    開封第一講書人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎从祝,沒想到半個(gè)月后襟己,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡牍陌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年擎浴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片毒涧。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡贮预,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出契讲,到底是詐尸還是另有隱情仿吞,我是刑警寧澤,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布捡偏,位于F島的核電站唤冈,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏银伟。R本人自食惡果不足惜你虹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一绘搞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧傅物,春花似錦夯辖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至尖阔,卻和暖如春贮缅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背介却。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工谴供, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人齿坷。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓桂肌,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親永淌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子崎场,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

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

  • 單一職責(zé)原則 (SRP) 全稱 SRP , Single Responsibility Principle 單一職...
    米莉_L閱讀 1,765評(píng)論 2 5
  • 本文出自《Android源碼設(shè)計(jì)模式解析與實(shí)戰(zhàn)》中的第一章。 1遂蛀、優(yōu)化代碼的第一步——單一職責(zé)原則 單一職責(zé)原則的...
    MrSimp1e0閱讀 1,768評(píng)論 1 13
  • 設(shè)計(jì)模式基本原則 開放-封閉原則(OCP)谭跨,是說(shuō)軟件實(shí)體(類、模塊李滴、函數(shù)等等)應(yīng)該可以拓展螃宙,但是不可修改。開-閉原...
    西山薄涼閱讀 3,797評(píng)論 3 14
  • 設(shè)計(jì)模式之六大原則(轉(zhuǎn)載) 關(guān)于設(shè)計(jì)模式的六大設(shè)計(jì)原則的資料網(wǎng)上很多...
    霄霄霄霄閱讀 899評(píng)論 0 1
  • 面向?qū)ο蟮?個(gè)基本要素: 封裝所坯、繼承谆扎、多態(tài) 面向?qū)ο蟮?個(gè)基本設(shè)計(jì)原則: 單一職責(zé)原則(Single-Respos...
    badcyc閱讀 858評(píng)論 0 4