美文网首页
笔记-架构模式

笔记-架构模式

作者: lotus_yoma | 来源:发表于2020-04-02 15:05 被阅读0次

    Contents:

    • MVC封装和解耦
    • MVP架构思路
    • MVVM架构思路

    MVC

    问题:1. vc代码过于沉重 2. 代码耦合性过高

    轻量级vc:只负责建立model和view的依赖关系

    通讯方式(model <--> view):通知,代理,block,指针,函数

    MVP:面向协议编程

    通过<font color=blue>代理</font>建立view和model之间的通讯

    代理三部曲:写协议,实现,遵循

    分类 + 协议 + 类 文件 在编译时map_images中加载进内存

    插入:

    1. 自定义代码块:协议声明、代理调用、属性声明等,有利于快捷编码

    2. block外通过__weak typeof(self) weakSelf = self;建立弱引用, 在block中再次__strong typeof(weakSelf) strongSelf = weakSelf;建立强引用的作用:延长生命周期,防止对象已经被释放、超出作用域或者防止block中有耗时操作。

    3. 代码移动快捷键,左移:cmd+[,上移:cmd+opt+[,右移:cmd+],下移:cmd+opt+]

    4. view和vc分离

      -(void)loadView{
        self.view = self.customView;
      }
      

    总结:通过代理实现数据和UI的双向绑定。

    • 缺点:需要写代理+实现,代码量增多。
    • 优点:vc解耦,单元测试,代码思路清晰(变化 接口 代理-》产品-》需求)面向接口编程 面向协议 面向需求 --- 需求驱动代码

    MVVM

    通过<font color=blue>block</font>和kvo建立view和model之间的通讯

    引入RAC框架(ReactiveObjC)简化kvo代码

    总结:网络请求放在viewModel中进行,使用block建立view和model之间的通讯

    • 优点:block可以保存代码块,节省代码量。RAC+MVVM可以做到响应式

    RAC核心原理:响应式编程

    • 创建信号
    • 订阅信号
    • 发送信号
    • 销毁信号

    资料地址

    腾讯课堂-iOS底层进阶-架构模式

    相关文章

      网友评论

          本文标题:笔记-架构模式

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