最近在公司做模塊化拆分,算是告一段落;由于是我親自參與設(shè)計锡宋,我想總結(jié)下抛姑。
我理解的模塊化主要是便于管理代碼,解耦,提高編譯速度。這次組要做的是本地的模塊化,網(wǎng)絡(luò)端的模塊化暫時不考慮夺荒。
現(xiàn)在分模塊A-moduleA,模塊B-moduleB良蒸,A的service-serviceA技扼,B的service-serviceB。一個AppBus嫩痰。
設(shè)計思路:總的思路是接口編程剿吻,利用protocol。創(chuàng)建protocolA:聲明幾個moduleA的服務(wù)方法串纺;創(chuàng)建protocolB:聲明幾個moduleB的服務(wù)方法丽旅。讓后在AppBus中引用protocolA.h 和 protocolB.h椰棘。serviceA遵循protocolA serviceB遵循protocolB,并實現(xiàn)全部方法榄笙。相當(dāng)于service是各個module的外直接口邪狞。在AppBus中還有個注冊服務(wù)的方法,把服務(wù)和響應(yīng)的實現(xiàn)類綁定茅撞,用的時候直接取帆卓,綁定的是類名,不是實例米丘,這樣不會消耗太多的內(nèi)存剑令。實行注冊的目的是方便管理。
+ (id)service:(Protocol *)serviceProtocol;
+ (BOOL)existService:(Protocol *)serviceProtocol;
+ (void)registerService:(Protocol *)serviceProtocol withImplementClass:(Class)implClass;
這樣設(shè)計確實改善了代碼的結(jié)構(gòu)蠕蚜,方便了管理尚洽,效果還是不錯的。目前的設(shè)計滿足我們目前的需求靶累,我們也會隨著項目的改變不斷優(yōu)化,大家有什么好的建議多多留言交流癣疟。