美文网首页
iOS 设计模式

iOS 设计模式

作者: liang1030 | 来源:发表于2021-10-20 10:26 被阅读0次

概述

设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型的事情。主要有MVC模式,MVVM模式,MVP模式,单例模式,观察者模式,委托模式,工厂模式等。

详述

  • MVC模式

Model View Controller,它是Cocoa的基石之一,是所有设计模式中最常用的设计模式。

• Model:数据处理

• View:控件的可视化显示,和用户的交互

• Controller:调节所有工作。访问Model中的数据,然后用View去显示,根据要求监听事件和操作数据。

  • MVVM模式

Model View ViewModel,它的横空出世是为了解决MVC模式下的ViewController瘦身。在MVC模式下,有一个很不好的地方,即ViewController(C层)会非常的臃肿,因为它会包含很多的数据请求以及业务逻辑,使得C层堆积的代码很多,这些堆积的代码也不被共用,维护性很差。由此,诞生了为ViewController瘦身的MVVM。但当功能简单时,MVC也不会复杂,MVVM反而会增加很多代码,所以对于简单的功能,MVC更加的方便。

• Model:数据处理

• View:视图展示

• ViweModel:业务处理和数据转化

  • MVP模式

Model–view–presenter (MVP) 是model–view–controller (MVC)设计模式派生出来的。MVP经常用来创建用户界面。
presenter是作为一个“中间人”的角色存在。在MVP中,所有页面显示逻辑都会被推送到presenter。

MVP是一种用户界面体系结构模式,旨在促进自动化单元测试和改进显示逻辑中关注点的分离。

• model(模型):是定义要在用户界面中显示或以其他方式操作的数据的接口。

• view(视图):是一个被动界面,它显示数据(模型)并将用户命令(事件)路由给presenter,以便对该数据进行操作。

• presenter:对模型和视图进行操作。它从存储库(模型)中检索数据,并格式化数据以便在视图中显示。

在MVP里,Presenter完全把Model和View进行了分离,主要的程序逻辑在Presenter里实现。
而且Presenter与具体的View是没有直接关联的,而是通过定义好的接口进行交互,从而使得在变更View时候可以保持Presenter的不变,即重用!


• MVP的 V 层是由UIViewController 和UIView 共同组成
• view 将委托presenter 对它自己的操作,(简单来说就是presenter发命令来控制view的交互,要你隐藏就隐藏,叫你show 你就乖乖的show)
• presenter拥有对 view交互的逻辑(就是上面说的意思)
• presenter跟model层通信,并将数据转化成对适应UI的数据并更新view
• presenter不需要依赖UIKit
• view层是单一,因为它是被动接受命令,没有主动能力

MVP.png

presenter 作为业务逻辑的处理者,首先要向Service层拿数据赋值给model,所以它将可以向model层通信。其次,UI的处理权移交给了它,所以它需要与view成通讯,发送命令更新UI。同时,UI的响应将触发业务逻辑的处理,所以view 层向presenter层通讯,告诉他用户做了什么操作,需要你反馈对应的数据来更新UI。这样就完成了从用户交互获得交互反馈到整个业务逻辑。

  • 单例模式

一个单例类,在整个程序中只有一个实例,并且提供一个类方法供全局使用。

  • 观察者模式

KVO是典型的观察者模式,观察某个属性的状态,状态发生变化是通知观察者。

  • 委托模式

代理+协议的组合。实现1对1的反响传值操作。

  • 工厂模式

通过一个类方法,批量的根据已有模板生产对象。

参考文献

相关文章

网友评论

      本文标题:iOS 设计模式

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