MVC设计模式

概述

MVC全名是Model View Controller,是模型-视图-控制器的缩写。一种软件设计典范,用一种业务逻辑、数据、界面分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

特点

一、 优点:
1、 耦合性低:视图层和业务层分离,所以在更改视图层代码时而不用重新编译模型和控制器代码。同样,更改业务流程或者业务规则改变时只需改动模型层即可。由于三个部件是相互独立,改变其中一个不会影响其他两个。
2、 重用性高 :比如很多界面可以重用一个模型。
3、 生命周期成本低。
4、 部署快。
5、 可维护性高。
6、 有利软件工程化管理。
二、 缺点:
1、 没有明确的定义:
2、 不适合小型、中等规模的应用程序。
3、 增加系统结构和实现的复杂性。
4、 视图与控制器间的过于紧密的链接。
5、 视图对模型数据的低效率访问。
6、 一般高级的界面工具或构造器不支持模式。

使用

在使用MVC设计模式时,我们得先理解和体会MVC的理念和规则:

1、 Model和View永远不能互相通信,只能通过Controller传递。
2、 Controller可以直接与Model对话(读写调用Model),Model通过Notification和KVO机制与Controller间接通信。
3、 Controller可以直接与View对话。通过Outlet,直接操作View,Outlet直接对应到View中的控件,View通过action向Controller报告事件的发生(如用户Touch我了)。Controller是View的直接数据源(数据很可能是Controller从Model中取得并经过加工了)。Controller是View的代理(delegate),以同步View与Controller。
这里写图片描述

代理的扩展:

在使用MVC设计模式时,有时候我们的View类型和一些基本的方法都一致,我们会采用集成的方法将一些共同的特性抽取出来,作为基类,其他的View只需集成即可。而很多时候,我们的代理也有许多同样的方法,这时候,我们同样使用继承的方式来实现,代理的继承和扩展和原始的代理区别如下:

1、 在定义代理时,继承基类的代理。如下图 代理SPCTableViewDataSource继承基类ZDBSimulateTableViewDatasource。
这里写图片描述

2、 定义代理实现对象。如idspcDataSoruce;

这里写图片描述
3、 在.m文件中重写set方法,给对象赋值并传值。_spcDataSoruce为当前代理的对象。而self.dataSource为父类的对象。

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值