設(shè)計模式和六大原則

一、六大原則
1.1單一職責(zé)原則(Single Responsibility Principle雏亚,簡稱SRP )
核心思想: 應(yīng)該有且僅有一個原因引起類的變更
問題描述: 假如有類Class1完成職責(zé)T1,T2,當(dāng)職責(zé)T1或T2有變更需要修改時新症,有可能影響到該類的另外一個職責(zé)正常工作
1.2里氏替換原則(Liskov Substitution Principle,簡稱LSP)
核心思想: 在使用基類的的地方可以任意使用其子類,能保證子類完美替換基類响禽。
通俗來講: 只要父類能出現(xiàn)的地方子類就能出現(xiàn)徒爹。反之,父類則未必能勝任金抡。
1.3依賴倒置原則(Dependence Inversion Principle,簡稱DIP)
核心思想:高層模塊不應(yīng)該依賴底層模塊瀑焦,二者都該依賴其抽象;抽象不應(yīng)該依賴細(xì)節(jié)梗肝;細(xì)節(jié)應(yīng)該依賴抽象榛瓮;
說明:高層模塊就是調(diào)用端,低層模塊就是具體實(shí)現(xiàn)類巫击。抽象就是指接口或抽象類禀晓。細(xì)節(jié)就是實(shí)現(xiàn)類。
通俗來講: 依賴倒置原則的本質(zhì)就是通過抽象(接口或抽象類)使個各類或模塊的實(shí)現(xiàn)彼此獨(dú)立坝锰,互不影響粹懒,實(shí)現(xiàn)模塊間的松耦合。
問題描述: 類A直接依賴類B顷级,假如要將類A改為依賴類C凫乖,則必須通過修改類A的代碼來達(dá)成。這種場景下,類A一般是高層模塊帽芽,負(fù)責(zé)復(fù)雜的業(yè)務(wù)邏輯删掀;類B和類C是低層模塊,負(fù)責(zé)基本的原子操作导街;假如修改類A披泪,會給程序帶來不必要的風(fēng)險。
解決方案: 將類A修改為依賴接口interface搬瑰,類B和類C各自實(shí)現(xiàn)接口interface款票,類A通過接口interface間接與類B或者類C發(fā)生聯(lián)系,則會大大降低修改類A的幾率泽论。
1.4接口隔離原則(Interface Segregation Principle,簡稱ISP)
核心思想:類間的依賴關(guān)系應(yīng)該建立在最小的接口上
通俗來講: 建立單一接口艾少,不要建立龐大臃腫的接口,盡量細(xì)化接口佩厚,接口中的方法盡量少姆钉。也就是說,我們要為各個類建立專用的接口抄瓦,而不要試圖去建立一個很龐大的接口供所有依賴它的類去調(diào)用潮瓶。
問題描述: 類A通過接口interface依賴類B,類C通過接口interface依賴類D钙姊,如果接口interface對于類A和類B來說不是最小接口毯辅,則類B和類D必須去實(shí)現(xiàn)他們不需要的方法。
1.5迪米特法則(Law of Demeter,簡稱LoD)
核心思想: 類間解耦煞额。
通俗來講: 一個類對自己依賴的類知道的越少越好思恐。自從我們接觸編程開始,就知道了軟件編程的總的原則:低耦合膊毁,高內(nèi)聚胀莹。無論是面向過程編程還是面向?qū)ο缶幊蹋挥惺垢鱾€模塊之間的耦合盡量的低婚温,才能提高代碼的復(fù)用率描焰。低耦合的優(yōu)點(diǎn)不言而喻,但是怎么樣編程才能做到低耦合呢栅螟?那正是迪米特法則要去完成的荆秦。

6、開放封閉原則(Open Close Principle,簡稱OCP)
核心思想: 盡量通過擴(kuò)展軟件實(shí)體來解決需求變化力图,而不是通過修改已有的代碼來完成變化
通俗來講: 一個軟件產(chǎn)品在生命周期內(nèi)步绸,都會發(fā)生變化,既然變化是一個既定的事實(shí)吃媒,我們就應(yīng)該在設(shè)計的時候盡量適應(yīng)這些變化瓤介,以提高項目的穩(wěn)定性和靈活性吕喘。
一句話概括: 單一職責(zé)原則告訴我們實(shí)現(xiàn)類要職責(zé)單一;里氏替換原則告訴我們不要破壞繼承體系刑桑;依賴倒置原則告訴我們要面向接口編程兽泄;接口隔離原則告訴我們在設(shè)計接口的時候要精簡單一;迪米特法則告訴我們要降低耦合漾月。而開閉原則是總綱,他告訴我們要對擴(kuò)展開放胃珍,對修改關(guān)閉梁肿。

二、責(zé)任鏈模式
響應(yīng)鏈

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末觅彰,一起剝皮案震驚了整個濱河市吩蔑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌填抬,老刑警劉巖烛芬,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異飒责,居然都是意外死亡赘娄,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門宏蛉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來遣臼,“玉大人,你說我怎么就攤上這事拾并∽嵫撸” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵嗅义,是天一觀的道長屏歹。 經(jīng)常有香客問我,道長之碗,這世上最難降的妖魔是什么蝙眶? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮继控,結(jié)果婚禮上械馆,老公的妹妹穿的比我還像新娘。我一直安慰自己武通,他們只是感情好霹崎,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著冶忱,像睡著了一般尾菇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天派诬,我揣著相機(jī)與錄音劳淆,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛捶惜,可吹牛的內(nèi)容都是我干的敦腔。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼曲掰,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了奈辰?” 一聲冷哼從身側(cè)響起栏妖,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎奖恰,沒想到半個月后吊趾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瑟啃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年论泛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片翰守。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡孵奶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蜡峰,到底是詐尸還是另有隱情了袁,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布湿颅,位于F島的核電站载绿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏油航。R本人自食惡果不足惜崭庸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望谊囚。 院中可真熱鬧怕享,春花似錦、人聲如沸镰踏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奠伪。三九已至跌帐,卻和暖如春首懈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背谨敛。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工究履, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人脸狸。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓最仑,卻偏偏與公主長得像,于是被迫代替她去往敵國和親炊甲。 傳聞我的和親對象是個殘疾皇子盯仪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

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