美文网首页功能实现参考iOS 开发 iOS Developer
多维度高复用模板开发架构设计(二)

多维度高复用模板开发架构设计(二)

作者: bigParis | 来源:发表于2016-05-18 16:55 被阅读138次

上回书多次提到了模板的构成
下面看下模板除了主场景还有什么其他的构成吧

左边榜单 右侧活动信息展示

那么如何把这个三个页面通过一个VC管理

@interface MFTemplateBaseViewController : UIViewController

@property (nonatomic, strong) NSArray *scrollableViewControllers;

@end

这里给出整套框架最底层的一个VC:MFTemplateBaseViewController, 调用方式是

    MFTemplateBaseViewController *baseViewController = [[MFTemplateBaseViewController alloc] init];
    MFChatRoomBoardController *leftController = [[MFChatRoomBoardController alloc] init];
    id centerController = nil;
    if ([[MFAppModel sharedObject].chatroomModelEx getRoomTemplateType] == kMFRoomTemplateTypeAppointment) {
        centerController = [[MFAppointmentMainViewController alloc] init];
    } else {
        centerController = [[MFNormalMainViewController alloc] init];
    }
    
    MFChatRoomRightViewController *rightController = [[MFChatRoomRightViewController alloc] init];
    
    baseViewController.scrollableViewControllers = @[leftController, centerController, rightController];
    [MFAPP pushViewController:baseViewController animated:YES];

可以看到MFTemplateBaseViewController将左中右, 以后可能更多个VC作为自己的Child

    for (int i = 0; i < self.scrollableViewControllers.count; ++i) {
        UIViewController *controller = self.scrollableViewControllers[i];
        if (controller && [controller respondsToSelector:@selector(setDelegate:)]) {
            [controller performSelector:@selector(setDelegate:) withObject:self];
        }
        
        [scrollView addSubview:controller.view];
        [self addChildViewController:controller];
    }

MFTemplateBaseViewController 里通过这样的方式将ChildView用自己的scrollView管理.

MFTemplateBaseViewController里面做什么, 做一些3个页面都需要的功能, 比如上面的标题栏, 背景图片等, 还有些3个页面共享的逻辑, 这里因为篇幅有限就不一一展示了, 大家可以自己脑补下.

MFTemplateBaseViewController作为导航控制器pushpop的最终对象, 而不同的模板可以根据需要给MFTemplateBaseViewController装载不同的scrollableViewControllers, 比如左侧如果不是榜单页面, 介意吧leftController换掉而不影响整体的架构.

好吧, 俗话说脱离业务谈架构都是扯淡, 这里我只是结合自己的业务谈谈模板开发的架构设计. 有疑问的可以私信我或者留言, 愿意接受大家的批评指教.

相关文章

  • 多维度高复用模板开发架构设计(二)

    上回书多次提到了模板的构成下面看下模板除了主场景还有什么其他的构成吧 那么如何把这个三个页面通过一个VC管理 这里...

  • 多维度高复用模板开发架构设计(一)

    我们要开发一个类似皮肤的功能, 但又有一些模板相关的逻辑. 以上面这个东西为例, 整体上相亲模板依赖大部分普通模板...

  • 模板模式

    1 模板模式介绍 模板模式(Template Pattern)是一种基于代码复用的设计模式。具体实现需要架构师和开...

  • 软件架构参考模板-软件架构设计学习第三天(原创)

    文章大纲 一、概述二、模板介绍 一、概述 在架构设计中,我们需要考虑非常多的方面,从网络安全到权限管理、业务开发、...

  • iOS架构

    好的架构设计可以提高开发效率,减少冗余的代码,提高组件模块的可复用性等。好的架构设计设计模式的有机结合,而不...

  • 架构

    1、架构是顶层设计;框架是面向对象或配置的半成品;组件是从技术维度上的复用;模块是从业务维度上职责的划分;系统是相...

  • 什么是架构 框架 组件 模块和系统?

    架构:是顶层设计框架:是面向编程或配置的半成品组件:是从技术维度上的复用模块:是从业务维度上职责的划分系统:是相互...

  • MVC-MVP

    任何架构的设计目的都是为了:低耦合,高复用,易测试,好维护。 MVC MVC(Model View Control...

  • 复用

    从复用角度讲,设计模式是代码级复用、框架是模块级复用、架构是系统级复用、平台是企业应用级复用。

  • AppWorker教程-UI复用

    UI复用 模板复用机制是android,ios等移动开发技术中类似listview,gridview,slidev...

网友评论

  • 603010f3888b:demo呢?
    bigParis:@JollyWeirdo 差不多,但不是
    603010f3888b:@bigParis 你们是在做直播么
    bigParis:@JollyWeirdo 由于是项目中的架构,所以暂时没有抽出demo,只给出部分代码,有时间可能会考虑的

本文标题:多维度高复用模板开发架构设计(二)

本文链接:https://www.haomeiwen.com/subject/jeywrttx.html