IOS中的MVC的设计模式(摘自精通Objective-C设计模式)

  

MVC的每一部分如何完成各自的功能?
  在模型对象中包含数据和基本的行为
模型对象在维持一个应用的数据的同时也定义了一些操作这个应用的特有的逻辑。他们具有较高的重用性因为他们代表了对某些问题领域可行的解决方案。例如,一个模型对象可能代表了一个复杂的数据结构,就像是用户在滑动屏幕或者简单到一个简单的应用功能。
一旦应用的任何需要的启动信息被加载,这些数据都应该存储到模型对象中。在理想的情况下,一个模型对象不能和用于展示或者编辑的任何用户界面有直接的关系。
  通过视图对象向用户展示信息
一个视图对象需要承担用户交互的任务并且需要知道如何向用户展示自己的视图。一个视图对象通常情况下会展示从应用的模型对象中获得的数据。而且视图对象可以仅仅通过一个模型对象一部分或者一个文正的模型对象甚至于多个组个的不同的数据模型来工作,通常,结合用户的交互,视图对象通常允许数据的修改。
尽管视图对象和模型对象之间有很密切的联系,但是在一个遵循MVC模式的应用中,视图对象是不会和模型对象绑定的。当然除了遇到了展示的原因(例如一个视图需要从模型对象中取得数据的时候),视图对象不能被用来存储它所展示的数据。
由于视图对象可以和多种不同类型的模型对象协同工作,它们在不同应用之间趋于重用和一致不变的。UIKit框架提供了很多可以重复利用在你自己的应用的视图类。
  尝试通过控制器对象来将模型和视图联系起来
一个模型对象扮演的时视图和模型之间的中间人。作为一个中间人或者媒介,它可以创建一个可以让视图获得数据并且将改变的数据传递到模型的交流的通道
除了媒介的角色,控制器对象还能为一个应用提供其他的功能,比如管理其他对象的生命周期,进行配置,并且协调应用的工作。
举个例子,一个有效的用户交互的结果通过视图对象的时候就像是在文本输入框中输入一个有效的值这种有效操作,会被传送到控制器对象。控制器则会根据同一个交互向视图层发送改变显示或者产生行为的消息,比如让文本输入框不可用。
根据需求的设定,控制器对象可以具有重用性或这没有。
MVC是一种复合的设计模式
MVC不是设计模式的最底层的。它包含集中相当原始的设计模式,这些原始的设计模式在本书的目录里面提及到了。 MVC中的元素设计模式一起定义功能的合作是一个MVC应用程序的特征
 

Cocoa (Touch)(触摸)版本的MVC包括综合,指挥,调解,战略,和观察员模式。

posted @ 2014-04-02 22:33  一壶浊酒  阅读(284)  评论(0)    收藏  举报