ProtocolRouter
协议路由-是用于iOS的App模块化编程的简化实现方案,吸收了BeeHive框架Protocol的理念来实现模块间的解耦。
首先声明一点,在楼主看来,目前已知的组件化路由项目里,基本都是 映射表/约定 的方式去完成对路由的整体设计,这是由 OC 语言的特性所决定的, 除非,OC可以像Java一样支持Protocol的实例化,或者说,就是支持动态的接口实例化。那么,就可以像Spring所做的那样,完全的动态化IoC(控制反转),然后再用注解来实现绑定,就可以避免配置文件的问题了。
像 casa 大神的CTMediator,虽说解耦,同样的也会有很多的 Target_xx 和 其内部的 Action_xx (中间件+约定), 依赖这些中间件来使用服务.
BeeHive 是用映射表的方式来完成的,框架在使用的过程中都会有很多协议的实现,这也是一个框架在设计原理的基础上所必要实现过程.
ProtocolRouter 这个项目借鉴了前人的宝贵经验,吸取了BeeHive(或者说protocol-class)和CTMediator(target-action)内比较好的一面去做的一个结合. 楼主用protocol-class的形式增加了一个中间件,用 约定 的方式去尽量简化了这个路由器的设计,让使用者可以很简单的完成组件的调用,组装以及组件之间的信息传递.
作为此框架的初级版本,ProtocolRouter实现了模块间的解耦和模块生命周期的管理,可以在模块的相应协议服务类里处理一些额外事件.