苹果开发中文网站组件化方案调研( 五 )

-(void)action_B:(NSString*)para1para2:(NSInteger)para2{

NSLog(@"callaction_B%@---%zd",para1,para2);

}

@end如果是传统做法 , A、B要调用对方的功能 , 就会直接import对方 , 然后初始化 , 接着调用方法 。 现在我们对他们实行组件化 , 改成如上图所示的mediator方式

target-action方案

该方案借助OC的runtime特性 , 实现了服务的自动发现 , 无需注册即可实现组件间调用 。 不管是从维护性、可读性、扩展性方面来讲 , 都优于url-scheme方案 , 也是我比较推崇的组件化方案 , 下面我们就来看看该方案如何解决上述两个问题的

Demo演示

此时A、B两个组件不用改 , 我们需要加一个mediator , 代码如下所示:

#import@interfaceMediator:NSObject

-(void)A_VC_Action:(NSString*)para1;

-(void)B_VC_Action:(NSString*)para1para2:(NSInteger)para2;

+(instancetype)sharedInstance;

@end

===========================================


推荐阅读