MVC设计模式

作者:满志鹏
日期:2014/4/1 13:30:28

?? MVC(model-view-controller)是一种目前广泛流行的软件设计模式,随着J2EE的成熟,它正在成长为在J2EE平台上推荐的一种设计模式,也是广大JAVA开发者非常感兴趣的设计模型MVC把一个应用的输入、处理、输出流程按照model、view、controller的方式进行分离这样一个应用被分成三个层次—模型层、视图层和控制层。
??? 视图代表用户交互界面,对于WEB应用来说,可以概括为HTML界面,但有可能为XHTML、XML和APPLET。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理。业务流程的处理。业务流程交予模型处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。
??? 模型就是业务流程/状态的处理以及业务的规则制定。业务流程的处理过程对其他层次来说是黑箱操作,模型接受视图请求的数据并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。业务模型还有一个很重要的模型就是数据模型。数据模型主要指实体对象的数据保存。可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。
??? 控制可以理解为从用户接受请求,将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何数据处理。例如,用户单击一个链接,控制层接受请求后,并不处理业务信息,它只把用户的信息转递给模型,告诉模型做什么,选择符合要求的试图返还给用户。因此,一个模型可能对应多个模型。
??? 模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都反映这些变化。因此,无论何时发生了何种数据变化,控制器都将会将变化通知所有视图,更新显示。

分享