行為型模式

模板方法模式

定義一個(gè)操作中算法的框架伸眶,而將一些步驟延遲到子類中,使得子類可以改變算法的結(jié)構(gòu),即可重新定義該算法中的某些特定步驟事哭。
優(yōu)點(diǎn)及適用場(chǎng)景:

  • 容易擴(kuò)展
  • 便于維護(hù)
  • 比較靈活
    在多個(gè)子類擁有相同的方法,并且這些方法邏輯相同時(shí)瓜富,可以考慮使用模板方法模式鳍咱。

中介者模式

用一個(gè)中介者對(duì)象封裝一系列的對(duì)象交互,中介者使各個(gè)對(duì)象顯示地相互作用与柑,從而使耦合松散谤辜,而且可以獨(dú)立地改變它們之間的交互。
優(yōu)點(diǎn):

  • 適當(dāng)?shù)氖褂弥薪檎吣J娇梢员苊馔骂愔g的過(guò)度耦合价捧,使得各同事類之間可以相對(duì)獨(dú)立地使用
  • 可以使對(duì)象間一對(duì)多的關(guān)聯(lián)關(guān)系轉(zhuǎn)變?yōu)橐粚?duì)一丑念,使對(duì)象間的關(guān)系易于理解和維護(hù)
  • 可以將對(duì)象的行為和協(xié)作進(jìn)行抽象,能夠比較靈活的處理對(duì)象間的相互作用
    適用場(chǎng)景:
    一般來(lái)說(shuō)適用于將同事類之間網(wǎng)狀結(jié)構(gòu)的關(guān)系轉(zhuǎn)換為星狀結(jié)構(gòu)结蟋。

觀察者模式

定義對(duì)象間一種一對(duì)多的依賴關(guān)系脯倚,使得當(dāng)每一個(gè)對(duì)象改變狀態(tài),則所有依賴于它的對(duì)對(duì)象都會(huì)得到通知并自定更新嵌屎。
觀察者與被觀察者之間是屬于輕度的關(guān)聯(lián)關(guān)系推正,并且是抽象耦合的恍涂,這樣,對(duì)于兩者來(lái)說(shuō)都比較容易進(jìn)行擴(kuò)展植榕。
觀察者模式是一種常用的觸發(fā)機(jī)制再沧,它形成一條觸發(fā)鏈,依次對(duì)各個(gè)觀察者的方法進(jìn)行處理内贮。同時(shí)产园,這也算是觀察者模式的一個(gè)缺點(diǎn),由于是鏈?zhǔn)接|發(fā)夜郁,當(dāng)觀察者數(shù)量過(guò)多時(shí)什燕,性能是一個(gè)問(wèn)題。

訪問(wèn)者模式

封裝某些作用于某種數(shù)據(jù)結(jié)構(gòu)中各元素的操作竞端,它可以在不改變數(shù)據(jù)結(jié)構(gòu)的前提下定義作用于這些元素的新的操作屎即。
優(yōu)點(diǎn):

  • 符合單一職責(zé)原則:凡是適用訪問(wèn)者模式的場(chǎng)景中,元素類中需要封裝在訪問(wèn)者中的操作必定是與元素類本身關(guān)系不大且是易變的操作事富,適用訪問(wèn)者模式一方面符合單一職責(zé)模式技俐,另一方面,封裝的操作通常是易變的统台,在發(fā)生變化時(shí)雕擂,可以在不改變?cè)乇旧淼那闆r下實(shí)現(xiàn)擴(kuò)展。
  • 擴(kuò)展性良好:元素可以通過(guò)接受不同的訪問(wèn)者來(lái)實(shí)現(xiàn)對(duì)不同操作的擴(kuò)展贱勃。
    適用場(chǎng)景:
  • 假如一個(gè)對(duì)象中存在著一些與本對(duì)象不相干(或者關(guān)系較弱時(shí))的操作井赌,為了避免污染這個(gè)對(duì)象,可以使用訪問(wèn)者模式來(lái)把這些操作封裝到訪問(wèn)者中去贵扰。
  • 假如一組對(duì)象中仇穗,存在著相似的操作,為了避免出現(xiàn)大量重復(fù)的代碼戚绕,也可以將這些重復(fù)的代碼封裝到訪問(wèn)者中去纹坐。
    但是訪問(wèn)者模式并不是那么完美,它的致命缺陷是:增加新的元素類比較困難舞丛。訪問(wèn)者模式比較適用于已有功能的重構(gòu)耘子。

命令模式:

將一個(gè)請(qǐng)求封裝成一個(gè)對(duì)象,從而讓你使用不同的請(qǐng)求把客戶端參數(shù)化瓷马,對(duì)請(qǐng)求排隊(duì)或者記錄請(qǐng)求日志拴还,可以提供命令的撤銷和恢復(fù)功能。顧名思義欧聘,命令模式就是對(duì)命令的封裝,優(yōu)缺點(diǎn)如下:

  • 封裝性好
  • 擴(kuò)展性好
    缺點(diǎn)是如果命令很多端盆,開(kāi)發(fā)起來(lái)就很麻煩怀骤。
    適用場(chǎng)景:
    對(duì)于大多數(shù)請(qǐng)求-響應(yīng)模式的功能费封,比較適合命令行模式。

責(zé)任鏈模式

使多個(gè)對(duì)象都有機(jī)會(huì)處理請(qǐng)求蒋伦,從而避免了請(qǐng)求的發(fā)送者和接收者之間的耦合關(guān)系弓摘。將這些對(duì)象連成一條鏈,并沿著這條鏈傳遞該請(qǐng)求痕届,直到有對(duì)象處理它為止韧献。
優(yōu)缺點(diǎn):

  • 責(zé)任鏈模式與if...else...相比,它的耦合性要低一些研叫,當(dāng)責(zé)任鏈比較長(zhǎng)時(shí)锤窑,性能問(wèn)題比較嚴(yán)重。
    適用場(chǎng)景:
    假如使用if...else...語(yǔ)句來(lái)組織一個(gè)責(zé)任鏈感到力不從心時(shí)嚷炉,可以采用責(zé)任鏈模式渊啰。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市申屹,隨后出現(xiàn)的幾起案子绘证,更是在濱河造成了極大的恐慌,老刑警劉巖哗讥,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嚷那,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡杆煞,警方通過(guò)查閱死者的電腦和手機(jī)魏宽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)索绪,“玉大人湖员,你說(shuō)我怎么就攤上這事∪鹎” “怎么了娘摔?”我有些...
    開(kāi)封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)唤反。 經(jīng)常有香客問(wèn)我凳寺,道長(zhǎng),這世上最難降的妖魔是什么彤侍? 我笑而不...
    開(kāi)封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任肠缨,我火速辦了婚禮,結(jié)果婚禮上盏阶,老公的妹妹穿的比我還像新娘晒奕。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布脑慧。 她就那樣靜靜地躺著魄眉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪闷袒。 梳的紋絲不亂的頭發(fā)上坑律,一...
    開(kāi)封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音囊骤,去河邊找鬼晃择。 笑死,一個(gè)胖子當(dāng)著我的面吹牛也物,可吹牛的內(nèi)容都是我干的宫屠。 我是一名探鬼主播,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼焦除,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼激况!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起膘魄,我...
    開(kāi)封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤乌逐,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后创葡,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體浙踢,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年灿渴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了洛波。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡骚露,死狀恐怖蹬挤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情棘幸,我是刑警寧澤焰扳,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站误续,受9級(jí)特大地震影響吨悍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蹋嵌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一育瓜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧栽烂,春花似錦躏仇、人聲如沸恋脚。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)慧起。三九已至菇晃,卻和暖如春册倒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背磺送。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工驻子, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人估灿。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓崇呵,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親馅袁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子域慷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

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