Bus架构记要
Bus架构,好处就是为系统结构提供灵活的动态扩展机制.可以通过数据类型、接口等动态构造实例。减少各个类之间的耦合度。他其实是抽象工厂模式的一种应用。
实例说明,在程序中我遇到的一个实例跳转流程如下:
第一步:初始化
在应用加载时- (void)applicationDidFinishLaunchingNotification,初始化Bus(总线):[EMBusManager registerAllBuses];--》+ (void)busregister:(EMBusObject *)busObj;注册了各种类型的BusObject(业务Bus,实现具体构造),并存放在[EMBus sharedInstance].dataBusObjectMap中。
第二步:跳转
1、跳转要闻界面[EMBus callData:@"news/SNDetailViewShowManager/goToSNDetailView" param:detail,[EMUtil windowNavigationViewController], nil];,声明跳转接口@"news/SNDetailViewShowManager/goToSNDetailView"和参数detail以及堆栈控制器NavigationViewController。
2、根据接口查找到所属的构造BusObject=EMNewsBusObject。:EMBusObject *busObj = [EMBus busObjectForName:bizName];,跳转到该构造Bus,执行构造方法:[EMNewsBusObject doDataJob:bizName params:paramArr];
3、实现条转:if ([businessName isEqualToString:@"news/SNDetailViewShowManager/goToSNDetailView"]){
DataItemDetail *detail = params[0];
EmBaseViewController *vc = params[1];
[SNDetailViewShowManager goToSNDetailView:detail ctrl:vc];
}
第三步:结束。