装饰模式在iOS开发中的应用
装饰模式
动态的给一个对象加一些额外的职责,就增加功能来讲,装饰模式比生成子类来讲更为灵活
例如我们对网络请求的api封装,有一个APIManager,在网络请求成功之后需要通知到一个代理(一般是vc):请求成功了,数据已拿到,可以把数据交由view显示了。
通常这个manager是继承了baseManager,并且在继承之后重写了 successCallBackDelegate 用于处理对应接口拿到的数据。
对于不同的接口,请求成功,数据拿到之后的数据解析肯定不同,的如果直接继承vc来处理,并且,代理的设置直接在子类中设置,这样的话,接口太多,子类也就太多了。
子类(子装饰者)APIManager
- (void)beforePerformSuccessWithResponse:(ZKURLResponse *)response{
// 在这里可以灵活扩展一些功能,之后再调用super的方法交给vc处理
[super beforePerformSuccessWithResponse:response];
}<