設計模式

六大設計原則

單一職責原則

Single Responsibility Principle
定義:應該有且僅有一個原因引起類的變更蔗喂。
單一職責適用于接口皇型、類舔腾,同時也適用于方法岛杀。
優(yōu)勢:
類的復雜性降低,實現(xiàn)什么職責都有清晰明確的定義沸版;
可讀性提高嘁傀;
可維護性提高兴蒸;
變更引起的風險性降低视粮。

里氏替換原則

Liskov Substitution Principle
所有引用基類的地方必須能透明的使用其子類的對象。
4層含義:
1橙凳,子類必須完全實現(xiàn)父類的方法蕾殴;
2,子類可以有自己的個性岛啸;
3钓觉,覆蓋或?qū)崿F(xiàn)父類的方法時輸入?yún)?shù)可以被放大;
4坚踩,覆蓋或?qū)崿F(xiàn)父類的方法時輸出結(jié)果可以被縮小荡灾。

優(yōu)勢:
代碼共享,減少創(chuàng)建類的工作量,每個子類都擁有父類的方法和屬性批幌;
提高代碼的重用性础锐;
子類可以形似父類,但又異于父類荧缘;
提高代碼的可擴展性皆警;
提高產(chǎn)品或項目的開放性。
缺點:
繼承時侵入性的截粗,只要繼承信姓,就必須擁有父類的所有屬性和方法;
降低代碼的靈活性绸罗;
增強了耦合性意推。

依賴倒置原則

Dependence Inversion Principle
依賴倒置原則可以減少類間的耦合性,提高系統(tǒng)的穩(wěn)定性珊蟀,降低并行開發(fā)引起的風險左痢,提高代碼的可讀性和可維護性。
三層含義
1系洛,高層模塊不應該依賴低層模塊俊性,兩者都應該依賴其抽象;
2描扯,抽象不應該依賴細節(jié)定页;
3,細節(jié)應該依賴抽象绽诚。

三種寫法
1典徊,構(gòu)造函數(shù)傳遞依賴對象;
2恩够,Setter方法傳遞依賴對象卒落;
3,接口聲明依賴對象蜂桶。

本質(zhì)是通過抽象(接口或抽象類)使各個類或模塊的實現(xiàn)彼此獨立儡毕,不互相影響,實現(xiàn)模塊間的松耦合扑媚。我們需要遵循的幾個規(guī)則:
1腰湾,每個類盡量都有接口或抽象類,或者兩者都有疆股;
2费坊,變量的表面類型盡量。是接口或者是抽象類旬痹;
3附井,任何類都不應該從具體類派生讨越;
4,盡量不要覆蓋基類的方法永毅;
5谎痢,結(jié)合里氏替換原則使用

接口隔離原則

Interface Segregation Principle
四層含義
1,接口要盡量芯淼瘛节猿;
2,接口要高內(nèi)聚漫雕;
3滨嘱,定制服務;
4浸间,接口設計是有限度的太雨。

迪米特法則

Law of Demeter
也稱為最少知識原則
一個對象應該對其他對象有最少的了解。
四層含義
1魁蒜,只和朋友交流囊扳;
2,朋友間也是有距離的兜看;
3锥咸,是自己的就是自己的;
4细移,謹慎使用Serializable搏予。

開閉原則

Open Closed Principle
一個軟件實體如類、模塊和函數(shù)應該對擴展開放弧轧,對修改關(guān)閉雪侥。

工廠模式

抽象工廠模式

單例模式

建造者模式

原型模式

適配器模式

橋接模式

過濾器模式

組合模式

裝飾器模式

外觀模式

享元模式

代理模式

責任鏈模式

命令模式

解釋器模式

迭代器模式

中介者模式

備忘錄模式

觀察者模式

狀態(tài)模式

空對象模式

策略模式

模板模式

訪問者模式

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市精绎,隨后出現(xiàn)的幾起案子速缨,更是在濱河造成了極大的恐慌,老刑警劉巖代乃,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旬牲,死亡現(xiàn)場離奇詭異,居然都是意外死亡襟己,警方通過查閱死者的電腦和手機引谜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門牍陌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來擎浴,“玉大人,你說我怎么就攤上這事毒涧≈ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長仿吞。 經(jīng)常有香客問我滑频,道長,這世上最難降的妖魔是什么唤冈? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任峡迷,我火速辦了婚禮,結(jié)果婚禮上你虹,老公的妹妹穿的比我還像新娘绘搞。我一直安慰自己,他們只是感情好傅物,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布夯辖。 她就那樣靜靜地躺著,像睡著了一般董饰。 火紅的嫁衣襯著肌膚如雪蒿褂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天卒暂,我揣著相機與錄音啄栓,去河邊找鬼。 笑死也祠,一個胖子當著我的面吹牛谴供,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播齿坷,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼桂肌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了永淌?” 一聲冷哼從身側(cè)響起崎场,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎遂蛀,沒想到半個月后谭跨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡李滴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年螃宙,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片所坯。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡谆扎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出芹助,到底是詐尸還是另有隱情堂湖,我是刑警寧澤闲先,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站无蜂,受9級特大地震影響伺糠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜斥季,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一训桶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧酣倾,春花似錦渊迁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至稚铣,卻和暖如春箱叁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背惕医。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工耕漱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人抬伺。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓螟够,卻偏偏與公主長得像,于是被迫代替她去往敵國和親峡钓。 傳聞我的和親對象是個殘疾皇子妓笙,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

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

  • 設計模式基本原則 開放-封閉原則(OCP),是說軟件實體(類能岩、模塊寞宫、函數(shù)等等)應該可以拓展,但是不可修改拉鹃。開-閉原...
    西山薄涼閱讀 3,797評論 3 14
  • 設計模式匯總 一辈赋、基礎知識 1. 設計模式概述 定義:設計模式(Design Pattern)是一套被反復使用、多...
    MinoyJet閱讀 3,944評論 1 15
  • 工廠模式類似于現(xiàn)實生活中的工廠可以產(chǎn)生大量相似的商品膏燕,去做同樣的事情钥屈,實現(xiàn)同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 7,758評論 2 17
  • 設計模式六大原則 設計模式六大原則(1):單一職責原則 定義:不要存在多于一個導致類變更的原因坝辫。通俗的說篷就,即一個類...
    viva158閱讀 766評論 0 1
  • 昨天一個學員和我聊天腻脏,說她老公讓她去看望他老公領導妻子鸦泳,和人家打好關(guān)系银锻。她很害怕永品,覺得自己最不擅長的就是和人拉關(guān)系...
    瑞敏談成長閱讀 507評論 0 0