ad

读懂《Java架构之完美设计 实战经典》_为更好架构做准备_2.6.3.2. 主动与被动 MVC模式

admin 157 2023-10-26

【摘要】 本书摘自《Java架构之完美设计 实战经典》一书中第2章,第6节,由颜廷吉编著。

2. 主动与被动 MVC模式

读懂《Java架构之完美设计 实战经典》_为更好架构做准备_2.6.3.2. 主动与被动 MVC模式

根据视图更新方式的不同, MVC 又分为主动模式与被动模式。

( 1 ) 主 动 MVC 模式

主动MVC 模式也就是经典的MVC 模式。 View 不是等 Controller 通知它的 Model更新了 才从 Model取数据并更新显示,而是自己监视Model 的更新(如用观察者模式)或主动询问 Model是否更新桌面程序一般都是主动模式,处理流程如下:

1)为了使视图接口可以与模型和控制器进行交互,控制器执行一系列初始化事件。 2)用户通过视图(用户接口)执行相应操作。

3)控制器处理用户行为并通知模型进行更新。

4)模型触发一系列事件,以便将更新告知视图。

5)视图处理模型变更的事件,然后显示新的模型数据。

6)用户接口等待用户的进一步操作。

这一模式有以下几个要点:

1)视图并不使用控制器去更新模型。控制器负责处理从视图发送过来的用户操作并通 过与模型的交互进行数据的更新。

2)控制器可以和视图融合在一起。

3)控制器不包含对视图的渲染逻辑。

(2)被动 MVC 模式

被动MVC 模式的View 更新是Controller 通知它 Model更新了,然后才从Model 取数据并 更新显示Web 系统一般都是被动MVC 模式,与主动MVC 模式的区别在于:

1)模型对视图和控制器一无所知,它仅仅是被使用。

2)控制器使用视图,并通知它更新数据显示。

3)视图仅是在控制器通知它去模型取数据时,才去模型获取最新数据(视图并不会订 阅或监视模型的更新)。

4)控制器负责处理模型数据的变化。

3. Model1与 Model2

使用JSP 与 Servlet 技术开发 Web 应用程序时,有两种模型可供选择: Modell 和 Model2。

(1)Model1

所谓 Model1就是JSP 大行其道的时代,在Model1 模式下,整个 Web 应用几乎全部由 JSP 页面组成。 JSP 页面接收处理客户端请求,对请求处理后直接做出响应,再用少量的 JavaBean来处理数据库连接、数据库访问等操作,如图2-47所示。

Model1模式的实现比较简单,适用于快速开发小规模项目。但从工程化的角度看,它 的局限性非常明显。 JSP 页面身兼View 和 Controller两种角色,将控制逻辑和表现逻辑混杂 在一起,从而导致代码的重用性非常低,增加了应用的扩展和维护的难度。

早期有大量 ASP 和 JSP 技术开发出来的Web 应用,这些Web 应用都采用了Model1架构。

(2)Model2

Model2模式是基于MVC 的架构模式。在Model2架构中, Servlet作为前端控制器,负责 接收客户端发送的请求,在Servlet 中只包含控制逻辑和简单的前端处理。然后,调用后端 JavaBean来完成实际的逻辑处理。最后,转发到相应的JSP 页面处理显示逻辑。Model2下 JSP 不再承担控制器的责任,它仅仅是表现层角色,用于将结果呈现给用户。 JSP页面的请求与 Servlet交互,而Servlet 负责与后台的 JavaBean 通信。在Model 2模式下, 模型由JavaBean 充当,视图由JSP 页面充当,而控制器则由 Servlet 充当。

由于引入了MVC 模式,使Model2具有组件化的特点,更适用于大规模应用的开发,但 也增加了应用开发的复杂程度。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:读懂《Java架构之完美设计 实战经典》_为更好架构做准备_1.4 架构师
下一篇:读懂《Java架构之完美设计 实战经典》_为更好架构做准备_2.4.3 序列图
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×