几乎所有基于Java的web app都需要Model 2
在Web应用方面,Java开发人员通常使用两种设计模式,简单称为Model 1和Model2. 两种模式现在都在应用,但在开发大中型的应用程序(译注:以后提及应用程序均代表Web应用程序)或复杂性将来可能增加的应用程序时,应当首推Model 2.我将谈论一下Model 2架构和实现Model 2架构的MVC(Model-View-Controller)设计模式.我还要解释一下为什么Model 2是首推模式,并提供一个实现这个模式的简单的应用程序.
你使用的Model 1,它是以页面为中心的.适用于完成简单的应用程序或者如果你想快速的完成一些东西的话.实现这个模式的应用程序有一系列的Jsp页面,在这些页面里用户程序运行从一个页面到另一个页面.因为它的简单容易,这是你初学Jsp时经常用到的一个模式.Model 1应用的主要问题是难以维护,并且毫无灵活性可言,另外,由于开发人员已经同时被卷入到了页面开发和商业逻辑的编码中,这个架构模式在页面设计人员和web开发人员之间很难实现劳动分工.
Model 2 是大型应用程序首推的架构.它是基于Model-view-Controller(MVC)模式,此模式是Smalltalk-80 用户界面的主要理念,那时候"pattern"这个术语还没有被使用,它被称为 MVC 范式。
MVC模式由三个主要的分类组成:模型(Model),视图(view),控制器(Controller).模型代表应用程序对象或数据,视图是模型的展现,控制器(controller)关注于用户接口与用户输入信息的交互操作。在MVC模式之前,这三部分存在于一个类中,使应用程序失去灵活性和重用性。
MVC模式实现了 视图和模型之间的松藕合。模型简单的封装了应用程序对象---它并不知道关于视图的任何事情。另一方面,视图是模型的可视化表述并且依赖于模型.视图含有模型实例的引用,控制器同样也是如此。
为了更好的理解MVC模式,让我们考虑一下微软的Excel电子表格,在它里面,数据可以通过使用饼图或直线图表的形式表现。 这里的饼图和直线图表就是视图,它们可视化了同样一批数据的。控制器通过用户的输入信息给模型和视图发送命令。
不象视图和模型之间的关系,视图和控制器有更为密切的关系。一个视图通常作为一个引用传给控制器对象并且他能够访问控制器中的一些变量。 如果你想知道更多关于MVC这个模式的一些信息,请看Steve Burbeck, Ph.D.的
"Applications Programming in Smalltalk-80: How to use Model-View-Controller (MVC)."
Model 2 架 构 图
现在,回到Model 2架构来,在MVC模式中,我们有一个Servlet来扮演控制器的角色(请看图 1).JSP页面通常被用来做为应用程序的视图,我们使用一个封装商业逻辑的JavaBean作为模型。
未完待续
Translated by windowsDNA