苹果开发中文网站组件化方案调研( 七 )
Classcls=NSClassFromString(@"B_VC");
NSObject*target=[[clsalloc]init];
[targetperformSelector:NSSelectorFromString(@"action_B:para2:")withObject:para1withObject:para2];
}
@end组件B调用组件A , 如下所示:
[[MediatorsharedInstance]A_VC_Action:@"参数1"];组件A调用组件B , 如下所示:
[[MediatorsharedInstance]B_VC_Action:@"参数1"para2:123];此时已经可以做到最后一张图所示的效果了 , 组件A,B依赖mediator , mediator不依赖组件A,B(也不是完全不依赖 , 而是把用runtime特性把类的引用弱化为了字符串)
反思
看到这里 , 大概有人会问 , 既然用runtime就可以解耦取消依赖 , 那还要Mediator做什么?我直接在每个组件里面用runtime调用其他组件不就完了吗 , 干嘛还要多一个mediator?
但是这样做会存在如下问题:
调用者写起来很恶心 , 代码提示都没有 , 参数传递非常恶心 , 每次调用者都要查看文档搞清楚每个参数的key是什么 , 然后自己去组装成一个NSDictionary 。 维护这个文档和每次都要组装参数字典很麻烦 。
当调用的组件不存在的时候 , 没法进行统一处理
推荐阅读
- 高圆圆|高圆圆现身扫楼生图曝光!穿紧身裙臀部凸出显眼,脸上苹果肌饱满
- 周也|17岁爆红,从“红苹果女主”到“卖货柜姐”,她怎么落魄成这样了?
- 奥斯卡|长泽雅美主持“日本奥斯卡”发布会,玫瑰粉无袖裙显胖苹果肌饱满,木村落选
- 苹果肌|济南海峡整形科普:关于玻尿酸那些事你都了解吗?
- 红苹果乐园|钟汉良果然是我妈最爱!《今生有你》首播夺冠,中年爱情太好磕了
- |洪成成更新频率太高引粉丝担忧,在小号公开发与男友甜蜜合照
- 家族荣耀|大衣哥儿子笑了,与相亲对象分食一个苹果,陈亚男心里是啥滋味?
- 陈亚男|复合无望!陈父再次公开发文,为女儿喊冤,此前被曝动手打朱小伟
- 陈亚男|陈亚男离婚风波后,其父亲再次公开发文,为女儿喊冤:她是无辜的
- 张纪中|让道具老师上街找了一夜的苹果,加戏删戏太随意!张纪中:太难搞
