iOS中的MVC

转载 2012年03月22日 22:58:39

相信说起MVC(Model-View-Controller)大家都很熟悉。在iOS开发中MVC的机制被使用的淋漓尽致,并且我觉得在iOS上写程序,充分理解iOS的MVC模式,有助于我们程序的组织合理性,相反,我们不遵守MVC的一些约定,程序是可以写的,但就等着受苦了。

下面我只对一些约定列一个表,并且说一下iOS的支持机制啊,算分享给大家:

1、Model不允许和Controller,View打交道。也就是Model根本不知道谁会用自己,Model中不能有任何对Controller和View的引用。正所谓:Don't call me, I will call you.就是给Model设计说的。我们再想想,在一般程序中Model到处被拿去用,它要维护到底谁用真的很难。那你会问:兄弟,那当Model的数据变了,我怎么通知视图更新呢?这里常用的机制就是广播模式,或者电台模式,或者事件机制都行。在iOS中有两种支持机制:Notification和KVO(Key-Value Observing)。这两种东西原理差不多,KVO是iOS中的一个核心概念,简单理解就是:关注Model某个数据(Key)的对象可以注册为监听器,一旦Model某个Key的Value发生变化,就会广播给所有的监听器。这和Flex,JavaFX中的绑定都是一个道理。

2、View不允许直接引用Controller和Model,它很专一地被Controller控制来进行数据的显示和接收用户的交互。我们知道View显示的时候需要数据,我们也知道在View上会产生事件。如果要达到不和Controller,Model直接打交道,就需要机制来支持。在Objective-C中有Protocol的东西,并且提出Delegate(代理模式)就是来解决UIView想和Controller松耦合互动问题的。除了这个外,iOS还提供了Action-Target模式来让Controller监听View的事件。那对View如何获得数据,iOS中提了Data Source的概念,其实也是Protocol的应用。

3、每一次推给用户的一个操作屏幕,最好都是MVC的三者组合,不要出现一组以上的MVC组合。

 

http://hi.baidu.com/janins/blog/item/1828a9f82f90509bb901a0d0.html

实际案例讲解iOS设计模式——MVC模式

转载:http://blog.csdn.net/nhwslxf123/article/details/49703773 MVC模式是iOS编程中提到的最多次的设计模式,也是使用最频繁的设计模式之...
  • u012361288
  • u012361288
  • 2016年06月17日 17:44
  • 5185

iOS开发里不用MVC反面教材

百度搜索MVC模式,一堆,说了一堆很多,反正就是各种好。我这个人表达能力不太强,反正我对这样的模式是认同的,优点也非常多,对代码的重构和维护都是非常好的实现模式。我以前吃过这样的亏,当时还没有不知道什...
  • a158337
  • a158337
  • 2016年01月20日 22:10
  • 828

iOS中的MVC和MVP的区别

在开发ios应用时,相信很多同学遇到和我一样的情况,虽然项目刚开始构架时自认为MVC层级分的特别明确,但最终往往是一个Activity有上千行代码,而且业务逻辑和UI的显示混杂在一起,导致后续项目的维...
  • touch929
  • touch929
  • 2017年01月06日 15:53
  • 807

iOS MVC框架模式

//联系人:石虎  QQ: 1224614774昵称:嗡嘛呢叭咪哄 1. MVC 的概念 MVC全名是Model View Controller,是模型(model)-...
  • shihuboke
  • shihuboke
  • 2017年06月22日 22:06
  • 325

IOS- 框架模式(简述 MVC,MVP,MVVM 和 VIPER)

MV(X)系列概要  做iOS开发也有一段时间了,最近闲暇之余总结了一下几个iOS框架,每个人对架构和设计模式都有不同的理解,在此记录下我的一些小见解,仅供参考,欢迎批评指正。当今我们已经有很架构设计...
  • Maxdong24
  • Maxdong24
  • 2017年02月22日 13:33
  • 666

iOS MVC简单的原理

运用了一些第三方库 运用的代码是OC代码。 运用了Masonry布局,AFNetworking网络请求,MJExtension,SDWebImage,MJRefresh。 第三方库的链接 Masonr...
  • a1989214
  • a1989214
  • 2017年09月04日 15:07
  • 145

iOS之MVC架构

MVC 将屏幕对象的外观和行为分开。屏幕按钮没有任何内在含义,只是用户可以操作的按钮。按钮称为视图,它的控制器充当桥梁,将用户交互与应用程序中的目标方法联系在一起。应用程序展现和保存有意义的数据,并通...
  • pingqingbo
  • pingqingbo
  • 2014年04月02日 14:02
  • 356

iOS架构Demo(MVC、MVP)

  • 2017年03月02日 13:35
  • 92KB
  • 下载

iOS中MVC、MVVM、MVP几种模式小结

一、MVC模式的优缺点  优点: 1、开发人员可以只关注整个结构中的其中某一层; 2、可以很容易的用新的实现来替换原有层次的实现; 3、可以降低层与层之间的依赖; 4、有利于标准化; 5、...
  • li_shuang_ls
  • li_shuang_ls
  • 2015年12月04日 16:38
  • 1969

实际案例讲解iOS设计模式——MVC模式

本文通过一个实际的案例,讲解如何将一个都写在ViewController中的代码,使用MVC使用分别写到Model、View和Controller之间,以减轻Controller的代码量,减少各个模块...
  • nhwslxf123
  • nhwslxf123
  • 2015年11月08日 01:36
  • 2147
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS中的MVC
举报原因:
原因补充:

(最多只允许输入30个字)