iOS 设计模式与架构

2021-09-21  本文已影响0人  yyggzc521

是一套能被反复使用、更方便他人理解、保证代码可靠性的经验总结
一般与编程语言无关,是一套比较成熟的编程思想

可以分为三大类

  1. 创建型:对象实例化的模式,用于解耦对象的实例化过程;
    单例模式、工厂方法模式等等
  2. 结构型:把类或对象结合在一起形成一个更大的结构;
    代理模式、适配器模式、组合模式、装饰模式等等
  3. 行为型:类或对象之间如何交互及划分责任和算法;
    观察者模式、命令模式、责任链模式等等。

iOS中常用单例、代理、观察者模式

一般比设计模式大,整个应用程序分为多少层架构;
将类分成很多角色(M、V、C、P、VM等等);

  1. MVC

MVC

优点:View、Model可以重复利用,可以独立使用;
缺点:Controller的代码过于臃肿

  1. MVP

MVP
1、 相当于用Presenter代替了MVC的Controller,本来Controller做的事情,现在交给Presenter做了,View的点击事件也交给presenter
2、控制器和presenter互相拥有,但presenter拥有weak类型的控制器,防止循环引用;
3、Model和View相互独立,View不拥有Model,又不想暴露控件,所以使用方法更新数据

优点:Presenter代替了MVC中的Controller,View、Model重复利用,可以独立使用;
缺点:Presenter和View的耦合性太高,每个View对应一个Presenter,导致类太多

  1. MVVM

MVP和MVVM有很相似
共同点:对Controller进行瘦身,将View和Model的一些业务逻辑放在Presenter或ViewModel中;
不同点:属性监听绑定;
View拥有ViewModel并监听ViewModel内部属性的改变,当属性改变时会更新View

优点:对Controller进行瘦身,实现双向绑定
缺点:类会变多、bug不便调试

分层设计

分层

MVC、MVP、MVVM属于界面层,分层设计是不同层级分别处理所在层级的任务

参考资料:
https://juejin.cn/post/7005095326025515021#heading-1

上一篇 下一篇

猜你喜欢

热点阅读