1.3.1 MVC模式介绍
MVC的英文全称是Model View Controller,它是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特地发展起来,用于映射传统的输入、处理和输出功能在一个图形化用户界面的逻辑结构中。MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是指控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。例如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。
模型-视图-控制器(MVC)模式是Xerox PARC(施乐帕克研究中心)在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式,已被广泛使用。后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多使用ColdFusion和PHP的开发者的欢迎。MVC模式也存在一定的优点和缺点。下面详细解析MVC。
(1)模型:模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如,可能用像EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型可以为多个视图提供数据。由于应用于模型的代码只需编写一次就可以被多个视图重用,因此减少了代码的重复性。
(2)视图:视图是用户能看到并与其交互的界面。对以前的Web应用程序来说,视图就是由HTML元素组成的界面;在现今的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Adobe Flash和像XHTML、XML/XSL、WML等一些标识语言与Web Services。MVC的优点是,它可以为应用程序处理多种不同的视图,而在视图中其实没有真正的处理发生。作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
(3)控制器:控制器接收用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何内容和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示返回的数据。