了解MVC原理

来源:互联网 发布:java开源流媒体服务器 编辑:程序博客网 时间:2024/06/03 16:07

13.2  MVC设计模式

初学者接触到设计模式,往往会产生误解,觉得设计模式很深奥,非常复杂。其实大可不必被那些名词所吓倒,设计模式不是新技术,也不是新观念。我们可以把模式简单理解为是某一类问题的解决方式。而且是典型问题的解决方式,我们可以利用它的思想,举一反三,解决类似问题。

程序设计的很多思想其实来源于生活,只不过是用计算机语言来表达出来。只要理解了事物本质,就没有什么能难倒你的。

MVC(Model-View-Controller)架构是比较流行的开发模式,很多程序语言中都有应用,同样可以用在Flex程序中。

13.2.1  了解MVC原理

MVC模式是由三个子系统组成的,它们分别是:Model、View、Controller。Model部件,负责装载数据和数据的行为;View部件,定义用户界面;Controller组件,处理程序中的数据。把这三点组合起来,就构成了MVC组合。

Model是在MVC组合中用于存储数据的要素,它可以存储很简单的数据,也可以存储极端复杂的数据。对于Model的定义,比较通用的说法是:它扮演数据库的角色,并且不依赖View和Controller而存在。Model与View或Controller之间没有必然的联系,这是MVC模式的一大要点,正是因为Model的独立性导致了MVC组件的巨大弹性。如果一个Model与一个View或Controller有某种对应关系,那它就被紧紧地绑定了,就只对某种特殊类型的Controller或View生效,但是,当一个Model与某种特殊类型的Controller或View没有对应关系时,它就能被用于各种类型的Controller和View之间的交流了。

View是程序的界面显示部分。Vew把Model里的数据呈现出来。一个View也就是Flex中的一个可视化组件,可能是一个List控件、一个DataGrid控件,也可能是一个Panel面板,里面包括了按钮、输入新的表单,或其他任何种类的组件,所有这些可视化的界面部分都被归于View部件中。

在View中,有部分控件用来显示数据,都是通过读取model数据来完成的。

Controller是负责处理用户的动作(例如,输入文本、点击按钮),必要时更新Model和View系统。比如,用户点击按钮,向数据端发送请求,重新加载数据,当数据加载结束,Model需要更新数据。这些都由Controller来完成。

在MVC组合中,每个部件与其他部件都保持着一种特定的关系,如图13.2所示。

 图13.2

                                                   

Model部件必须始终保持独立。这意味着Model不可能了解任何其他要素,也不需要了解其他要素。但这并不意味着Model与其他要素毫无联系。当Model中的数据改变时Model能通报消息,但重要的是,Model仅仅只是通报消息,而不负责谁获取消息。这种功能使Model与其他子系统的联系减弱,从而保证了其更大的弹性。

View需要单方面了解Model,见图13.2中View和Model之间的虚线,它们之间的联系是单方面的,没有约束关系。View通过两种途径与Model相互影响:它监听Model的更新消息。View和Model之间从来不进行信息交流,它只是使用Model的数据。每个View都与它相应的Model保持一种联系。Model从来不知道谁在使用自己的数据,它的数据可能被许多个View使用。

和View不同,Controller需要控制Model。Controller处理用户的交互,捕捉特定的事件,更新Model中的数据。Controller也与View紧密地联系在一起。虽然一个Controller可能对应多个View,但更普遍的情况是一个Controller对应一个View。

MVC模式的关键点在于Model的独立性,它与View或Controller之间没有对应关系。



转载地址:http://book.51cto.com/art/200812/101730.htm

原创粉丝点击