作者:Flyingis
素描工具:
Struts + Hibernate 3
素描对象:一个足够简单的基于
MVC
的
Web
应用
目的:使用
Struts
分离业务逻辑与表现,使用
Hibernate
分离数据操作与业务逻辑,整理一种基本的
MVC
开发思路。
1.
素描框架
该素描主要体现在系统层次的功能划分,系统结构的组织与设计上,素描足够简单,数据库中只涉及一张表:
学生信息(学生编号、姓名、性别、年龄、专业信息)--Student( id, name, gender, age, specialty_id )
公共类的设计与实现
各模块的详细设计,主要描述一个基本的
CRUD
操作,以及对象数据传递
2.
公共类设计
基本的
CRUD
操作封装在基本的帮助类
HibernateHelper
中,实现
Object load(Class theClass, java.io.Serializable id)
、
Query createQuery(String queryString)
、
void setQueryParameter(Query query, String name, Object val)
、
List list(Query query)
、
void save(Object o)
、
void update(Object o)
、
void delete(Object o)
、
void saveOrUpdate(Object o)
等这些基本方法。
常量单独封装在
Constants
类中。
3.
各种对象设计
-
ActionForm:StudentForm--
用于视图层与控制层之间传递数据。
-
接口
StudentIf--
实现了学生数据对象
Bean
所需要的所有接口方法。
-
学生数据对象
StudentData--
实现了记录学生对象数据的功能,并可以用作数据交互的传输对象,它实现了接口
Serializable
和
StudentIf
。
-
学生实体
Bean StudentBean--
实现了学生实体的所有属性,它实现了接口
Serializable
和
StudentIf
。
4.
对象管理实现类
业务逻辑处理为项目的核心,直接关系到项目是否符合用户需求。因此,我们可以单独设计一个对象管理实现类
ManagerFacade,定义处理业务对象的CRUD操作,以增加学生信息为例public StudentIf addStudent(StudentIf student)。学生数据对象StudentData在Action中通过StudentForm接收到表现层传入的数据,然后作为ManagerFacade对象的addStudent方法的参数传入方法内,在方法体内声明学生实体StudentBean的一个对象,将学生数据对象即传入参数中的属性值赋给实体对象,然后调用公共类HibernateHelper的save方法完成数据库操作。其他基本操作与此类似,这样设计似乎对象较多,但各层之间分工明确,有利于降藕。
另外,在数据传递过程中,还会涉及到数据类型的转换,可以专门设计帮助类来完成。
5.
页面
UI
设计
除了设计美观的页面外,最重要的是页面结构要符合项目需要,并提供一定的使用体验,有时候简单实用就是最好。如果可以对用户浏览器统一规范要求,或是基本不会屏蔽
Javascript
,数据格式的控制可以放在客户端用
Javascript
实现。
6.
系统的部署、测试与发布。