iOS裝飾模式的實現

2021-06-20 19:37:45 字數 1269 閱讀 6435

首先需要乙個需要裝飾的類object:

@inte***ce object : nsobject

- (void)doonething;

- (void)dootherthing;

@end

@implementation object

- (void)doonething

- (void)dootherthing

@end

然後需要類object的裝飾抽象類,其他具體的裝飾實現類都要繼承自這個裝飾抽象類:

@inte***ce objectabstractdecorator : object

- (id)initwithobject:(object *)obj;

@end

@inte***ce objectabstractdecorator ()

@end

@implementation objectabstractdecorator

- (id)initwithobject:(object *)obj

return self;

}- (void)doonething

- (void)dootherthing

@end

然後是裝飾實現類,

@inte***ce doonethingdecorator : objectabstractdecorator

@end

@implementation doonethingdecorator

- (void)doonething

@end

@inte***ce dootherthingdecorator : objectabstractdecorator

@end

@implementation dootherthingdecorator

- (void)dootherthing

@end

在客戶端那邊呼叫,最終產生乙個經過裝飾object。

int main(int argc, const char * argv)

return 0;

}

通過裝飾模式對乙個object進行多次裝飾的組合可以很好的避免object的子類迅速膨脹的問題(避免每乙個裝飾的組合都需要乙個object的子類)。

iOS開發 裝飾模式

裝飾模式是指在不必改變原類檔案和使用繼承的情況下,動態地擴充套件乙個物件的功能。通過建立乙個包裝物件,也就是裝飾來包裹真實的物件。裝飾模式中的 裝飾物件和真實物件有相同的介面。這樣客戶端物件就能以和真實物件相同的方式和裝飾物件互動,同時裝飾物件包含乙個真實物件的引用 reference 裝飾物件接受...

ios設計模式 裝飾模式 decorator

適用場景,對不可修改的類進行擴充套件,比如說靜態庫 或系統的類等 使用思路 1.先模擬出乙個被裝飾 類 功能一樣的類 2.建立 模擬類 的子類,對子類進行擴充套件。原物件 import inte ce gamepad nsobject 上下左右操作 void up void down void le...

設計模式 裝飾模式的C 實現

這是bwar在2009年寫的設計模式c 實現,均可編譯可執行,一直存在自己的電腦裡,曾經在團隊技術分享中分享過,現搬到線上來。1.1 目的 動態地給乙個物件新增一些額外的職責。1.2 適用性 1 在不影響其他物件的情況下,以動態 透明的方式給單個物件新增職責。2 處理那些可以取消的職責。3 不能或不...