iOS架构-MVC

概述

MVC是一种设计模式 一般都会说Model-View-Controller三者的关系
Model: 程序的数据部分,用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法;
View: 程序的界面展示,实际上是数据有目的的界面显示,但视图绝不与model直接交互,在视图中一般没有程序上的逻辑;
Controller: 将Model与View连接起来协同工作的部分,控制器起到不同层面间的组织作用,用于控制应用程序的流程。

这是一个描述三者关系的经典图片在这里插入图片描述

下面用一个简单的登陆注册界面对MVC进行简单的了解
在这里插入图片描述

每一个页面都是一个MVC结构

将每一个页面进行封装

在这里插入图片描述在这里插入图片描述

model一般用于请求API接口数据由于我们这个只有简单的登陆注册所以只有简单的书写在这里插入图片描述

V和M都已经分配好了,接下来就是看C如何协调分配了。ViewController.h中的代码如下:

在这里插入图片描述在这里插入图片描述
其中有登陆和注册页面进行了值的交互在这里使用了通知传值在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后不要忘记进行回收
在这里插入图片描述
优点:MVC使得程序的输入、处理和输出强制性的分开,这增加了软件的扩展性、维护性以及封装性,使得软件开发从不同层面上分离解耦。直接描述这些优点可能看着会很晦涩,举几个例子来说明一下:1.几个界面可以共用一个model,这使得model可复用,同时只有model的一个拷贝使得代码更易于维护;2.当模型,数据与控制器是相分离的时候,改变业务规则就变得很容易,数据的存储可以随意的迁移,因为模型对控制器的接口是不变的,这样界面仍然可以正确的展示,界面UI也是可以任意改变,因为它只关心界面不会影响到其他;3.MVC这样将三方独立的区分开,也绝对的有利于多人或者团队开发。

缺点:虽然MVC有着那么多优点,并且我们的项目也采用这样的开发模式,但是他的缺点也很明显,严格的三者分离有时候是很难区分的,需要仔细的思考确定边界,同时Model与View不能直接交互,就必然在性能上有一些损失(极小)。
MVCdemo

发布了34 篇原创文章 · 获赞 4 · 访问量 744

猜你喜欢

转载自blog.csdn.net/weixin_44824650/article/details/101117652