设计模式里的开放封闭原则

    就是在增加功能和逻辑时不改动逻辑代码,通过修改配置文件来增加功能,直接增加键值就行
设计模式里的开放封闭原则_第1张图片
image.png

pragma mark UICollectionView被选中时调用的方法

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
  QXMFatherHomeIndexCollectionModel *model = self.bottomTabList[indexPath.row];
  [QXMUtility trackName:@"功能列表" data:@{@"名称":model.tabTitle}];
  if ([[self blockDictionary] valueForKey:model.tabType]) {//字典,减少else if判断
    QXMWeakSelf
    void (^block)(UIViewController *,NSString *) =  [[self blockDictionary] valueForKey:model.tabType];
    block(weakSelf,model.tabTitle);
  } else {//BEGINNERS 新手学堂 和其他H5界面
    [QXMUtility jumpWebH5ByController:self url:model.url isRightItem:model.isHaveShare isHiddenNavagation:model.isHiddenNavagation isHaveComment:model.isHaveComment];
  }
}

pragma mark -- block字典

-(NSDictionary *)blockDictionary {
return @{
         @"IPO":[^(UIViewController *VC,NSString *data) {//新股中心
             QXMNewStockCenterVC *newStock= [[QXMNewStockCenterVC alloc] init];
             [VC.navigationController pushViewController:newStock animated:YES];
         } copy],
         @"BILLBOARD":[^(UIViewController *VC,NSString *data) {//龙虎榜
             QXMBillboardVC *bill= [[QXMBillboardVC alloc] init];
             [VC.navigationController pushViewController:bill animated:YES];
             [MobClick event:UM_QXMBillboard];
         } copy],
         @"ECONOMIC_CALENDAR":[^(UIViewController *VC,NSString *data) {/** 财经日历 */
             QXMEconomicCalendarVC *economicCalendar = [[QXMEconomicCalendarVC alloc] init];
             [VC.navigationController pushViewController:economicCalendar animated:YES];
         } copy],
         @"MARGIN_TRADING":[^(UIViewController *VC,NSString *data) {//融资融券
             QXMMarginTradingVC *vc= [[QXMMarginTradingVC alloc] init];
             [VC.navigationController pushViewController:vc animated:YES];
             [MobClick event:UM_QXMMarginTrading];
         } copy],
         @"LIKEKLINE":[^(UIViewController *VC,NSString *data) {//相似k线
             QXMSimilarKSearchVC *vc= [[QXMSimilarKSearchVC alloc] init];
             vc.title = data;
             [VC.navigationController pushViewController:vc animated:YES];
         } copy],
         @"ACCOUNT":[^(UIViewController *VC,NSString *data) {/** 开户接口 */
             [QXMUtility jumpTKOpenListVC:VC mParams:nil];
         } copy],
         @"MULTITRAYLIMIT":[^(UIViewController *VC,NSString *data) {//涨停复盘//智能复盘
             QXMIntelligentCheckingVC *vc= [[QXMIntelligentCheckingVC alloc] init];
             [VC.navigationController pushViewController:vc animated:YES];
         } copy],
         @"STOCKINDEX":[^(UIViewController *VC,NSString *data) {//条件选股
             QXMStockIndexFatherVC *vc = [[QXMStockIndexFatherVC alloc] init];
             [VC.navigationController pushViewController:vc animated:YES];
         } copy],
         };
   }

你可能感兴趣的:(设计模式里的开放封闭原则)