結構型之四-裝飾模式

Decrator(裝飾模式)

動態(tài)的給一個對象添加一些額外的職責肝劲,就增加功能來說葵蒂,裝飾模式比生成子類更加靈活梁沧。decorate應該像禮物一樣層層封裝檀何,每一層都添加新的功能。

VC.m

- (void)viewDidLoad {
    [super viewDidLoad];
    //原始對象
    ConcreteComponent *component = [[ConcreteComponent alloc]init];
    //裝飾對象
    ConcreteDecoratorA *decoratorA = [[ConcreteDecoratorA alloc]init];
    ConcreteDecoratorB *decoratorB = [[ConcreteDecoratorB alloc]init];
    
    //裝飾對象指定原始對象廷支,后面就是用裝飾對象频鉴。這樣既有原始對象的功能,也有裝飾對象的功能恋拍。
    decoratorA.component = component;
    decoratorB.component = component;
    
    [decoratorA operation];
    [decoratorB operation];
}

Decorator.h // 裝飾類

@interface Decorator : Component
//裝飾對象需要裝飾的原始對象
@property(nonatomic, strong)Component *component;
@end

Decorator.m

@implementation Decorator
-(void)operation{
    if (self.component) {
        [self.component operation];
    }
}
@end

ConcreteDecoratorA.h // 裝飾者A

@interface ConcreteDecoratorA : Decorator
@end

ConcreteDecoratorA.m

@implementation ConcreteDecoratorA

-(void)operation{
    [super operation];
    [self addedBehavior]; // 添加的裝飾功能
}
- (void)addedBehavior{
    NSLog(@"ConcreteDecoratorA添加的裝飾功能垛孔,相當于對Component進行裝飾");
}
@end

設計圖

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市施敢,隨后出現(xiàn)的幾起案子周荐,更是在濱河造成了極大的恐慌,老刑警劉巖僵娃,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件概作,死亡現(xiàn)場離奇詭異,居然都是意外死亡默怨,警方通過查閱死者的電腦和手機讯榕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來先壕,“玉大人瘩扼,你說我怎么就攤上這事±牛” “怎么了集绰?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長谆棺。 經常有香客問我栽燕,道長罕袋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任碍岔,我火速辦了婚禮浴讯,結果婚禮上,老公的妹妹穿的比我還像新娘蔼啦。我一直安慰自己榆纽,他們只是感情好,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布捏肢。 她就那樣靜靜地躺著奈籽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鸵赫。 梳的紋絲不亂的頭發(fā)上衣屏,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音辩棒,去河邊找鬼狼忱。 笑死,一個胖子當著我的面吹牛一睁,可吹牛的內容都是我干的钻弄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼卖局,長吁一口氣:“原來是場噩夢啊……” “哼斧蜕!你這毒婦竟也來了?” 一聲冷哼從身側響起砚偶,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎洒闸,沒想到半個月后染坯,有當地人在樹林里發(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡丘逸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年单鹿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片深纲。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡仲锄,死狀恐怖,靈堂內的尸體忽然破棺而出湃鹊,到底是詐尸還是另有隱情儒喊,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布币呵,位于F島的核電站怀愧,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜芯义,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一哈垢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧扛拨,春花似錦耘分、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至待秃,卻和暖如春拜秧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背章郁。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工枉氮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人暖庄。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓聊替,卻偏偏與公主長得像,于是被迫代替她去往敵國和親培廓。 傳聞我的和親對象是個殘疾皇子惹悄,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內容