最近在公司做模块化拆分,算是告一段落;由于是我亲自参与设计,我想总结下。
我理解的模块化主要是便于管理代码,解耦,提高编译速度。这次组要做的是本地的模块化,网络端的模块化暂时不考虑。
现在分模块A-moduleA,模块B-moduleB,A的service-serviceA,B的service-serviceB。一个AppBus。
设计思路:总的思路是接口编程,利用protocol。创建protocolA:声明几个moduleA的服务方法;创建protocolB:声明几个moduleB的服务方法。让后在AppBus中引用protocolA.h 和 protocolB.h。serviceA遵循protocolA serviceB遵循protocolB,并实现全部方法。相当于service是各个module的外直接口。在AppBus中还有个注册服务的方法,把服务和响应的实现类绑定,用的时候直接取,绑定的是类名,不是实例,这样不会消耗太多的内存。实行注册的目的是方便管理。
+ (id)service:(Protocol *)serviceProtocol;
+ (BOOL)existService:(Protocol *)serviceProtocol;
+ (void)registerService:(Protocol *)serviceProtocol withImplementClass:(Class)implClass;
这样设计确实改善了代码的结构,方便了管理,效果还是不错的。目前的设计满足我们目前的需求,我们也会随着项目的改变不断优化,大家有什么好的建议多多留言交流。
网友评论