首页 > 代码库 > Model1与Model2

Model1与Model2

   在DRP视频里介绍了java 两种开发模式,即Model1与Model2 。他们的不同之处在于Model1将表示层与业务逻辑层结合起来。而Model2在它的基础上将业务逻辑层进行了分离。下面就简单介绍一下他们各自的体系结构。

 

   Model1即以JSP为中心的开发模型。在Model1体系中, 客户端直接与JSP页面打交道,负责响应用户请求并将处理结果返回给用户。除此之外,渲染页面、数据验证、业务逻辑处理等也是由它来完成。而 这样照成的结果,在JSP页面上混合了大量的java和HTML代码。 


     

   优点:

      1.大部分功能由JSP页面完成,需要建立的类较少,开发快、简单。

      2.适合小规模企业开发

   缺点:业务逻辑与表示逻辑强强耦合,导致代码的重用性低,不利于维护与扩展。    

   

   Model2模式基于模型视图控制器(MVC,Model-View-Controller)的设计模式。在Model2的体系中,把一个Web项目分成三层,包括模型层(javaBean构成,包括dao)、视图层View(JSP页面)、控制层(Servlet构成)。如下图所示:




那么Model2的处理过程是怎么样的呢?客户请求主要是与Servlet打交道。Servlet就相当于是一个控制器,负责管理对请求的处理,创建JSP页面需要使用的对象。同时根据请求的业务需求决定把哪个JSP页面传给请求者。

优点:

1.将控制层从Model1体系中独立出来。提高代码重用率、扩展性,降低了项目的维护成本;

2.三层各司其职,互不干涉

缺点:不适合小型企业项目开发


总结:Model1与Model2本质区别其实在于分层的思想。现在人们开发的软件更多的是以工程的思想进行,所以开发的项目是否可维护、可重用、可扩展越来越受人追捧。恰恰Model2(MVC)的分层思想正好也体现了这一点,而且这种分层思想,能够更好的适应需求变化、能够更好的进行人员分工、以及更好的管理。例如懂美工的可专门负责界面设计方面,懂逻辑的负责逻辑,懂数据库的负责数据库。