<<Effective OC>>读书笔记 --- 第十二条 理解消息转发
2016-11-07 16:58
239 查看
转自:http://www.cocoachina.com/ios/20151208/14595.html
+ (BOOL)resolveInstanceMethod:(SEL)sel
+ (BOOL)resolveClassMethod:(SEL)sel
方案二:
- (id)forwardingTargetForSelector:(SEL)aSelector
方案三:
- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector;
- (void)forwardInvocation:(NSInvocation *)anInvocation;
我们可以利用消息转发,由一个外观类接受所有的消息,转发给不同的类处理。
打个比方:比赛足球时,脚下有球的那名球员,如果他的位置不利于射门或者他的球即将被对方球员抢断,这时最好是把球传出去,这里的球就相当于消息。
方案一:+ (BOOL)resolveInstanceMethod:(SEL)sel
+ (BOOL)resolveClassMethod:(SEL)sel
方案二:
- (id)forwardingTargetForSelector:(SEL)aSelector
方案三:
- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector;
- (void)forwardInvocation:(NSInvocation *)anInvocation;
这里体现一种设计模式
外观模式(Facade)
外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口,看下类我们可以利用消息转发,由一个外观类接受所有的消息,转发给不同的类处理。
相关文章推荐
- <<Effective OC>>读书笔记 --- 第六条 理解“属性”这一概念
- <<Effective OC>>读书笔记 --- 第八条 理解“对象等同”这一概念
- <<Effective OC>>读书笔记 --- 第二十四条 将类的实现分散在不同文件中,便于管理
- <<More Effective C++>>读书笔记2: 运算符
- <<More Effective C++>>读书笔记3: 异常
- <<Effective C++>>读书笔记(一)
- <<Effective C++>>读书笔记7: 模板与泛型编程
- <<Effective C++>>读书笔记(三)
- <<Effective C++>>读书笔记8: 定制new和delete
- <<Effective c++>>读书笔记---条款19:设计class犹如设计type
- <<More Effective C++>>读书笔记6: 杂项
- <<More Effective C++>>读书笔记4: 效率
- <<Effective C++>>读书笔记
- <<Effective C++>>读书笔记(1)
- <<Effective C++>>读书笔记9: 杂项讨论
- <<Effective C++>>读书笔记4: 设计与声明
- <<Effective C++>>读书笔记3: 资源管理
- RxSwift Runtime分析(利用OC消息转发实现IOS消息拦截)<原理同ReactiveCocoa>
- <<Effective C++>>读书笔记(二)
- <<Effective c++>>读书笔记---条款20:宁以pass-by-reference-to-const替换pass-by-value