锋互联科技有限公司版权所有北京iOS开发培训:浅谈MVC与MVVM北京iOS开发培训:浅谈MVC与MVVM。接触iOS开发已有一段时间,自我感觉,苹果公司设计的开发环境还是比较人性化,比较容易上手及理解。在组织大型项目的代码文件时,我们经常实用MVC的设计思想,还有一个现在有点被神话了的MVVM。MVC的概念讲起来非常简单,但是理解和应用起来却非常困难。而MVVM只是由MVC衍生出来的框架,没有想象中的那么神奇。下面我们就先讨论一下MVC设计理念。M(Model)是指业务模型,也就是模型对象;V(View)是指用户界面,也就是视图对象;C(Controller)则是控制器,就是控制器对象。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。模型对象(M)模型对象封装了应用程序的数据,并定义操控和处理该数据的逻辑和运算。例如,模型对象可能是表示游戏中的角色或地址簿中的联系人。用户在视图层中所进行的创建或修改数据的操作,通过控制器对象传达出去,最终会创建或更新模型对象。模型对象更改时(例如通过网络连接接收到新数据),它通知控制器对象,控制器对象更新相应的视图对象。视图对象(V)视图对象是应用程序中用户可以看见的对象。视图对象知道如何将自己绘制出来,并可能对用户的操作作出响应。视图对象的主要目的,就是显示来自应用程序模型对象的数据,并使该数据可被编辑。尽管如此,在MVC应用程序中,视图对象通常与模型对象分离。控制器对象(C)锋互联科技有限公司版权所有在应用程序的一个或多个视图对象和一个或多个模型对象之间,控制器对象充当媒介。控制器对象因此是同步管道程序,通过它,视图对象了解模型对象的更改,反之亦然。控制器对象还可以为应用程序执行设置和协调任务,并管理其他对象的生命周期。模型会把任何数据的变更通知控制器,然后控制器更新视图数据。视图对象通知控制器用户的操作,控制器要么根据需要来更新模型,要么检索任何被请求的数据。以上所述为描述MVC这种设计理念,下面我们再来看一下MVVM的设计理念。那么什么是MVVM呢?其实很简单,MVVM一个MVC的增强版,我们正式连接了视图和控制器,并将表示逻辑从Controller移出放到一个新的对象里,即ViewModel。MVVM听起来很复杂,但它本质上就是一个精心优化的MVC架构,而MVC上面已做介绍。MVVM是Model-View-ViewModel的简写。相对于MVC的历史来说,MVVM是一个相当新的架构,MVVM最早于2005年被微软的WPF和Silverlight的架构师JohnGossman提出,并且应用在微软的软件开发中。当时MVC已经被提出了20多年了,可见两者出现的年代差别有多大。MVVM在使用当中,通常还会利用双向绑定技术,使得Model变化时,ViewModel会自动更新,而ViewModel变化时,View也会自动变化。在使用中,大家对于MVVM以及MVVM衍生出来的框架有一种「敬畏」感。这种「敬畏」感某种程度上就像对神一样,这主要表现在我没有听到大家
北京iOS开发培训浅谈MVC和MVVM 来自淘豆网m.daumloan.com转载请标明出处.