設(shè)計模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)

概念:

設(shè)計模式:對用來在特定場景下解決一般設(shè)計問題的類和互相通信的對象的描述
四要素:

  • 模式名 :一個助記名令花,它用一兩個詞來描述模式的問題依啰、解決方案和效果
  • 問題 :描述了應(yīng)該在何時使用模式
  • 解決方案 :描述了設(shè)計的組成成分扼脐、他們之間的相互關(guān)系及各自的相互關(guān)系及各自的職責(zé)和協(xié)作方式
  • 效果 :描述了模式應(yīng)用的效果及使用模式應(yīng)該權(quán)衡的問題

設(shè)計模式+意圖:

常用的設(shè)計模式
  • Abstract Factory:提供一個創(chuàng)建一系列相關(guān)或相互依賴對象的接口竿痰,而無需指定它們具體的類苟弛。
  • Adapter :將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口褪测。 Adapter模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作猴誊。
  • Bridge:將抽象部分與它的實現(xiàn)部分分離潦刃,使它們都可以獨立地變化。
  • Builder:將一個復(fù)雜對象的構(gòu)建與它的表示分離稠肘,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示福铅。
  • Chain of Responsibility:為解除請求的發(fā)送者和接收者之間耦合,而使多個對象都有機會處理這個請求项阴。將這些對象連成一條鏈滑黔,并沿著這條鏈傳遞該請求,直到有一個對象處理它环揽。
  • Command:將一個請求封裝為一個對象略荡,從而使你可用不同的請求對客戶進(jìn)行參數(shù)化;對請求排隊或記錄請求日志歉胶,以及支持可取消的操作汛兜。
  • Composite:將對象組合成樹形結(jié)構(gòu)以表示“部分 -整體”的層次結(jié)構(gòu)。Composite使得客戶對單個對象和復(fù)合對象的使用具有一致性通今。
  • Decorator:動態(tài)地給一個對象添加一些額外的職責(zé)粥谬。就擴展功能而言, Decorator模式比生成子類方式更為靈活辫塌。
  • Facade:為子系統(tǒng)中的一組接口提供一個一致的界面漏策, Facade模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用臼氨。
  • Factory Method:定義一個用于創(chuàng)建對象的接口掺喻,讓子類決定將哪一個類實例化。Factory Method使一個類的實例化延遲到其子類储矩。
  • Flyweight:運用共享技術(shù)有效地支持大量細(xì)粒度的對象感耙。
  • Interpreter:給定一個語言 , 定義它的文法的一種表示,并定義一個解釋器 , 該解釋器使用該表示來解釋語言中的句子持隧。
  • Iterator:提供一種方法順序訪問一個聚合對象中各個元素 , 而又不需暴露該對象的內(nèi)部表示即硼。
  • Mediator:用一個中介對象來封裝一系列的對象交互。中介者使各對象不需要顯式地相互引用屡拨,從而使其耦合松散谦絮,而且可以獨立地改變它們之間的交互。
  • Memento:在不破壞封裝性的前提下洁仗,捕獲一個對象的內(nèi)部狀態(tài),并在該對象之外保存這個狀態(tài)性锭。這樣以后就可將該對象恢復(fù)到保存的狀態(tài)赠潦。
  • Observer:定義對象間的一種一對多的依賴關(guān)系 ,以便當(dāng)一個對象的狀態(tài)發(fā)生改變時 ,所有依賴于它的對象都得到通知并自動刷新。
  • Prototype:用原型實例指定創(chuàng)建對象的種類草冈,并且通過拷貝這個原型來創(chuàng)建新的對象她奥。
  • Proxy:為其他對象提供一個代理以控制對這個對象的訪問瓮增。
  • Singleton:保證一個類僅有一個實例,并提供一個訪問它的全局訪問點哩俭。
  • State:允許一個對象在其內(nèi)部狀態(tài)改變時改變它的行為绷跑。對象看起來似乎修改了它所屬的類。
  • Strategy :定義一系列的算法,把它們一個個封裝起來, 并且使它們可相互替換凡资。本模式使得算法的變化可獨立于使用它的客戶砸捏。
  • Template Method:定義一個操作中的算法的骨架,而將一些步驟延遲到子類中隙赁。Template Method使得子類可以不改變一個算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟垦藏。
  • Visitor:表示一個作用于某對象結(jié)構(gòu)中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用于這些元素的新操作伞访。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末掂骏,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子厚掷,更是在濱河造成了極大的恐慌弟灼,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冒黑,死亡現(xiàn)場離奇詭異田绑,居然都是意外死亡,警方通過查閱死者的電腦和手機薛闪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進(jìn)店門辛馆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人豁延,你說我怎么就攤上這事昙篙。” “怎么了诱咏?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵苔可,是天一觀的道長。 經(jīng)常有香客問我袋狞,道長焚辅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任苟鸯,我火速辦了婚禮同蜻,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘早处。我一直安慰自己湾蔓,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布砌梆。 她就那樣靜靜地躺著默责,像睡著了一般贬循。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上桃序,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天杖虾,我揣著相機與錄音,去河邊找鬼媒熊。 笑死奇适,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的泛释。 我是一名探鬼主播滤愕,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼怜校!你這毒婦竟也來了间影?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤茄茁,失蹤者是張志新(化名)和其女友劉穎魂贬,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體裙顽,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡付燥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了愈犹。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片键科。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖漩怎,靈堂內(nèi)的尸體忽然破棺而出勋颖,到底是詐尸還是另有隱情,我是刑警寧澤勋锤,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布饭玲,位于F島的核電站,受9級特大地震影響叁执,放射性物質(zhì)發(fā)生泄漏茄厘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一谈宛、第九天 我趴在偏房一處隱蔽的房頂上張望次哈。 院中可真熱鬧,春花似錦吆录、人聲如沸亿乳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽葛假。三九已至,卻和暖如春滋恬,著一層夾襖步出監(jiān)牢的瞬間聊训,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工恢氯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留带斑,地道東北人。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓勋拟,卻偏偏與公主長得像勋磕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子敢靡,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,691評論 2 361