設(shè)計模式-行為型模式

中介者模式(Mediator)

中介者模式

意圖:用一個中介對象來封裝一系列的對象交互三痰,中介者使各對象不需要顯式地相互引用吧寺,從而使其耦合松散窜管,而且可以獨(dú)立地改變它們之間的交互。
主要解決:對象與對象之間存在大量的關(guān)聯(lián)關(guān)系稚机,這樣勢必會導(dǎo)致系統(tǒng)的結(jié)構(gòu)變得很復(fù)雜微峰,同時若一個對象發(fā)生改變,我們也需要跟蹤與之相關(guān)聯(lián)的對象抒钱,同時做出相應(yīng)的處理蜓肆。

命令模式(Command)

命令模式

意圖:將一個請求封裝成一個對象,從而使得行為請求者和行為實(shí)現(xiàn)者解耦合谋币。
主要解決:在軟件系統(tǒng)中仗扬,行為請求者與行為實(shí)現(xiàn)者通常是一種緊耦合的關(guān)系,但某些場合蕾额,比如需要對行為進(jìn)行記錄早芭、撤銷或重做、事務(wù)等處理時诅蝶,這種無法抵御變化的緊耦合的設(shè)計就不太合適退个。

備忘錄模式(Memento)

備忘錄模式

意圖:在不破壞封裝性的前提下,捕獲一個對象的內(nèi)部狀態(tài)调炬,并在該對象之外保存這個狀態(tài)语盈。
主要解決:所謂備忘錄模式就是在不破壞封裝的前提下,捕獲一個對象的內(nèi)部狀態(tài)缰泡,并在該對象之外保存這個狀態(tài)刀荒,這樣可以在以后將對象恢復(fù)到原先保存的狀態(tài)。

模板方法模式(Template)

模板方法模式

意圖:定義一個操作中的算法的骨架棘钞,而將一些步驟延遲到子類中缠借。模板方法使得子類可以不改變一個算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟。
主要解決:一些方法通用宜猜,卻在每一個子類都重新寫了這一方法泼返。

狀態(tài)模式(State)

狀態(tài)模式

意圖:將特定狀態(tài)相關(guān)的邏輯分散到一些類的狀態(tài)類中
主要解決:對象的行為依賴于它的狀態(tài)(屬性),并且可以根據(jù)它的狀態(tài)改變而改變它的相關(guān)行為姨拥。

策略模式(Strategy)

策略模式

意圖:定義一系列的算法,把它們一個個封裝起來, 并且使它們可相互替換绅喉。
主要解決:在有多種算法相似的情況下,使用 if...else 所帶來的復(fù)雜和難以維護(hù)垫毙。

觀察者模式(Observer)

觀察者模式

意圖:定義對象間的一種一對多的依賴關(guān)系霹疫,當(dāng)一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并被自動更新综芥。
主要解決:一個對象狀態(tài)改變給其他對象通知的問題,而且要考慮到易用和低耦合猎拨,保證高度的協(xié)作膀藐。

解釋器模式(Interpreter )

解釋器模式

意圖:給定一個語言屠阻,定義它的文法表示,并定義一個解釋器额各,這個解釋器使用該標(biāo)識來解釋語言中的句子国觉。
主要解決:對于一些固定文法構(gòu)建一個解釋句子的解釋器。

訪問者模式(Visitor)

訪問者模式

意圖:主要將數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)訪問操作分離虾啦。
主要解決:穩(wěn)定的數(shù)據(jù)結(jié)構(gòu)和易變的訪問操作耦合問題麻诀。

責(zé)任鏈模式(Chain of Responsibility)

責(zé)任鏈模式

意圖:避免請求發(fā)送者與接收者耦合在一起,讓多個對象都有可能接收請求傲醉,將這些對象連接成一條鏈蝇闭,并且沿著這條鏈傳遞請求,直到有對象處理它為止硬毕。
主要解決:職責(zé)鏈上的處理者負(fù)責(zé)處理請求呻引,客戶只需要將請求發(fā)送到職責(zé)鏈上即可,無須關(guān)心請求的處理細(xì)節(jié)和請求的傳遞吐咳,所以職責(zé)鏈將請求的發(fā)送者和請求的處理者解耦了逻悠。

迭代器模式(Iterator)

迭代器模式

意圖:提供一種方法順序訪問一個聚合對象中各個元素, 而又無須暴露該對象的內(nèi)部表示。
主要解決:不同的方式來遍歷整個整合對象韭脊。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末童谒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子沪羔,更是在濱河造成了極大的恐慌惠啄,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件任内,死亡現(xiàn)場離奇詭異撵渡,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)死嗦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門趋距,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人越除,你說我怎么就攤上這事节腐。” “怎么了摘盆?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵翼雀,是天一觀的道長。 經(jīng)常有香客問我孩擂,道長狼渊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮狈邑,結(jié)果婚禮上城须,老公的妹妹穿的比我還像新娘。我一直安慰自己米苹,他們只是感情好糕伐,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蘸嘶,像睡著了一般良瞧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上训唱,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天褥蚯,我揣著相機(jī)與錄音,去河邊找鬼雪情。 笑死遵岩,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的巡通。 我是一名探鬼主播尘执,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼宴凉!你這毒婦竟也來了誊锭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤弥锄,失蹤者是張志新(化名)和其女友劉穎丧靡,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體籽暇,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡温治,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了戒悠。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片熬荆。...
    茶點(diǎn)故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖绸狐,靈堂內(nèi)的尸體忽然破棺而出卤恳,到底是詐尸還是另有隱情,我是刑警寧澤寒矿,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布突琳,位于F島的核電站,受9級特大地震影響符相,放射性物質(zhì)發(fā)生泄漏拆融。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望冠息。 院中可真熱鬧挪凑,春花似錦孕索、人聲如沸逛艰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽散怖。三九已至,卻和暖如春肄渗,著一層夾襖步出監(jiān)牢的瞬間镇眷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工翎嫡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留欠动,地道東北人。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓惑申,卻偏偏與公主長得像具伍,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子圈驼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評論 2 348

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

  • 設(shè)計模式概述 在學(xué)習(xí)面向?qū)ο笃叽笤O(shè)計原則時需要注意以下幾點(diǎn):a) 高內(nèi)聚人芽、低耦合和單一職能的“沖突”實(shí)際上,這兩者...
    彥幀閱讀 3,736評論 0 14
  • 前言 行為型模式绩脆,共十一種:策略模式萤厅、模板方法模式、觀察者模式靴迫、迭代器模式惕味、解釋器模式、責(zé)任鏈模式玉锌、命令模式名挥、備忘...
    進(jìn)無盡閱讀 728評論 0 1
  • 前言 行為型模式共十一種:策略模式、模板方法模式芬沉、觀察者模式躺同、迭代器模式、解釋器模式丸逸、責(zé)任鏈模式蹋艺、命令模式、備忘錄...
    進(jìn)無盡閱讀 1,289評論 0 1
  • javascript設(shè)計模式與開發(fā)實(shí)踐 設(shè)計模式 每個設(shè)計模式我們需要從三點(diǎn)問題入手: 定義 作用 用法與實(shí)現(xiàn) 單...
    穿牛仔褲的蚊子閱讀 4,042評論 0 13
  • 《人間失格》圖書介紹 你覺得幸福嗎黄刚?那你要讀這本書捎谨。你覺得不幸福嗎?那你更要讀這本書。 《人間失格》作者是日本著名...
    善于Harbin閱讀 330評論 0 1