行為型設(shè)計(jì)模式-模板方法模式

定義

定義一個(gè)操作中的算法的骨架紧索,而將一些步驟延遲到子類中瑟枫。模板方法使得子類可以不改變一個(gè)算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟兴想。


角色

AbstractClass: 抽象類
ConcreteClass: 具體子類


優(yōu)缺點(diǎn)

優(yōu)點(diǎn)

1币励、封裝不變部分,擴(kuò)展可變部分。
2湃累、提取公共代碼栅干,便于維護(hù)。
3宏榕、行為由父類控制拓诸,子類實(shí)現(xiàn)侵佃。

缺點(diǎn)

每一個(gè)不同的實(shí)現(xiàn)都需要一個(gè)子類來(lái)實(shí)現(xiàn),導(dǎo)致類的個(gè)數(shù)增加奠支,使得系統(tǒng)更加龐大馋辈。(這難道也算是缺點(diǎn)么,哈哈哈)


使用場(chǎng)景

1倍谜、有多個(gè)子類共有的方法首有,且邏輯相同。
2枢劝、重要的井联、復(fù)雜的方法,可以考慮作為模板方法您旁。


場(chǎng)景模擬

打開好多電腦玩游戲

UML圖

模板方法模式

簡(jiǎn)單代碼

@protocol PlayGame <NSObject>
-(void)openComputer;
-(void)playGame;
-(void)closeComputer;
@end

#import <Foundation/Foundation.h>
#import "PlayGame.h"
@interface Computer : NSObject<PlayGame>
-(void)play;
@end

#import "Computer.h"

@implementation Computer
-(void)play{
    [self openComputer];
    [self playGame];
    [self closeComputer];
}
@end
#import <Foundation/Foundation.h>
#import "Computer.h"
@interface AMDComputer : Computer

@end


#import "AMDComputer.h"

@implementation AMDComputer
-(void)openComputer{
    NSLog(@"AMD 打開電腦");
}
-(void)playGame{
    NSLog(@"AMD 玩游戲");
}
-(void)closeComputer{
     NSLog(@"AMD 關(guān)閉電腦");
}
@end

測(cè)試代碼

   Computer * computer = [AMDComputer new];
    [computer play];

測(cè)試結(jié)果

2018-04-11 16:03:55.016264+0800 行為型設(shè)計(jì)模式-模板方法模式[71826:8771965] AMD 打開電腦
2018-04-11 16:03:55.016451+0800 行為型設(shè)計(jì)模式-模板方法模式[71826:8771965] AMD 玩游戲
2018-04-11 16:03:55.016602+0800 行為型設(shè)計(jì)模式-模板方法模式[71826:8771965] AMD 關(guān)閉電腦

源代碼地址

下一篇講解

行為型設(shè)計(jì)模式-訪問(wèn)者模式

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末烙常,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鹤盒,更是在濱河造成了極大的恐慌蚕脏,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侦锯,死亡現(xiàn)場(chǎng)離奇詭異驼鞭,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)尺碰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門挣棕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人亲桥,你說(shuō)我怎么就攤上這事洛心。” “怎么了题篷?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵词身,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我番枚,道長(zhǎng)法严,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任葫笼,我火速辦了婚禮深啤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘渔欢。我一直安慰自己墓塌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著苫幢,像睡著了一般访诱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上韩肝,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天触菜,我揣著相機(jī)與錄音,去河邊找鬼哀峻。 笑死涡相,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的剩蟀。 我是一名探鬼主播催蝗,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼育特!你這毒婦竟也來(lái)了丙号?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤缰冤,失蹤者是張志新(化名)和其女友劉穎犬缨,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體棉浸,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡怀薛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了迷郑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枝恋。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖三热,靈堂內(nèi)的尸體忽然破棺而出鼓择,到底是詐尸還是另有隱情,我是刑警寧澤就漾,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站念搬,受9級(jí)特大地震影響抑堡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜朗徊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一首妖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧爷恳,春花似錦有缆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)杯矩。三九已至,卻和暖如春袖外,著一層夾襖步出監(jiān)牢的瞬間史隆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工曼验, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留泌射,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓鬓照,卻偏偏與公主長(zhǎng)得像熔酷,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子豺裆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

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

  • 1 場(chǎng)景問(wèn)題# 1.1 登錄控制## 幾乎所有的應(yīng)用系統(tǒng)纯陨,都需要系統(tǒng)登錄控制的功能,有些系統(tǒng)甚至有多個(gè)登錄控制的功...
    七寸知架構(gòu)閱讀 1,962評(píng)論 3 53
  • 【學(xué)習(xí)難度:★★☆☆☆留储,使用頻率:★★★☆☆】直接出處:模板方法模式梳理和學(xué)習(xí):https://github.co...
    BruceOuyang閱讀 722評(píng)論 0 2
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,116評(píng)論 25 707
  • 昨天因?yàn)槌鋈ネ嬉砜伲笈畠捍螂娫挍]接到,回家老公說(shuō)孩子發(fā)燒获讳,嗓子痛阴颖。我趕緊打電話,問(wèn)東問(wèn)西丐膝,她自己針也打了量愧,藥也吃了,...
    于佳禾媽媽閱讀 163評(píng)論 0 2
  • 好像每日除了美食帅矗、畫畫偎肃、健身………… 好像沒干什么了…… 但愿能將這三項(xiàng)一直堅(jiān)持下去,加油浑此,楠潯姑娘累颂。
    小胖紙要努力閱讀 320評(píng)論 2 3