为什么要组件化?
组件和组件之间没有明确的约束;
组件单独开发、单独测试,不能揉入主项目中开发,测试也可以针对性的测试;
代码拆分还不足以解决业务之间的代码耦合,为了更好的让拆分出去的业务工程能够独立运行,必须进行组件拆分并且实现组件服务化。
一、创建模块化开发中间层管理类
/*
根据一个指定操作的URL调用相关操作
@param url:操作的URL
url格式:iclap://插件名.调用的操作名?参数名1=参数值1&参数名2=参数值2
@param completion:完成之后的回调Block
@return
Mediator_ERROR_TYPE
Mediator_Result
*/
- (id)performPublicWithUrl:(NSURL *)url completion:(void(^)(id result))completion;
解析url,通过performSelector的方式调用相应的方法,并在方法内处理传参操作
二、服务调用 :通过url的方式
testString :Public://interaction.createNewInteraction?keyID=123 //协定好的规则 interaction类名称;createNewInteraction 方法名 keyID参数1
调用代码如下:
NSURL *url= [NSURL URLWithString: testString];
[[DevMediatorManager sharedInstance] performMediatorWithUrl:url completion:^(id result) {
} operation:^(id result) {
}];
三、接收模块处理
创建一个继承模块中间层的类,并按照协议规范类名和方法名
例:
@interface Public_interaction : Public_Base (interaction 类名)
- (id)PublicAction_createNewInteraction:(NSDictionary *)params; (createNewInteraction 方法名)
在方法内部创建对应的控制器,针对params的参数进行传值.