第四篇:设计模式与Struts介绍篇
严重警告:只关心程序的人请跳过
事先声明:本篇全是介绍性的东西,根本没谈到编程。本篇所有内容均不是本人作品。也没有修改的地方,只是删除了些内容。为什么要加这篇内容?看了能明白什么?等等诸类问题,本人概不知道,但要声明:觉得不是废话。
设计模式(Design Patten)
简单来说,Design Patten 就是一个常用的方案。 在我们的开发过程中,经常会遇到一些相同或者相近的问题,每次我们都会去寻找一个新的解决方法,为了节省时间提高效率,我们提供一些能够解决这些常见问题的,被证实可行的方案,构成一个统一的资源库。
一个Design Patten描述了一个被证实可行的方案。这些方案非常普通,是有完整定义的最常用的模式。 这些模式可以被重用,有良好的伸缩性。
MVC设计模式
代码分离,显示与逻辑解耦
验证处理
流程控制
更新应用程序的状态
MVC 通过将问题分为三个类别来帮助解决单一模块方法所遇到的某些问题,这就
Model(模型) 、View (视图) 、Controller(控制器)
Model(模型)
模型包含了应用程序的核心,它封装了应用程序的数据结构和事务逻辑,集中体现了应用程序的状态。有时候它仅包含了状态信息,因为它并不了解视窗或控制器的信息(任何时候它对视图或控制器都一无所知 )。
JavaBean及 EJB 很适合扮演这个角色,因为它能够处理绝大部分事务逻辑和数据结构。它能够与数据库或文件系统进行交互,承担维护应用程序数据的责任。
View(视图)
视图实现模块的外观, 它是应用程序的外在表现。它可以访问模型的数据, 却不了解模型的情况, 同时它也不了解控制器的情况。当模型发生改变时, 视图会得到通知, 它可以访问模型的数据,但不能改变这些数据 。
Controller(控制器)
控制器对用户的输入做出反应并且将模型和视图联系在一起。servlet能够接受客户端的HTTP请求, 并且根据需要创建所需的JavaBean或者EJB,然后将产生的变化通知给视窗 。
面向WEB应用的 MVC Model 2 模式
Web应用的特点:
客户机和服务器的无状态连接
由于HTTP本身缺乏状态信息,客户端必须对服务器进行再查询才能发现由输入所造成的改变,在这种情况下,控制器不能将应用程序的改变通知视图。
实现视图所用的技术与实现模型或控制器的技术不同。
也可以使用Java代码来生成所有的Html,但这样会产生更多问题。
对于 Web应用,需要修改标准的 MVC 形式。下图显示了 MVC 的 Web 改写版,通常也称为 MVC Model 2 或 MVC 2。