首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

在对系统的需求进行了分析以后,接下来开始对系统的整体架构进行设计。本章的重点在于讲述如何进行开发,而不是在于如何进行设计。因此,在设计这一部分只是简单进行了介绍,目的是为了使读者更容易理解整个系统。

17.4.1  系统架构设计

整个应用程序遵循多层次的架构模式,从上到下依次为视图层、控制器层、模型层、持久化层和数据库层,如图17.24所示。前面三层其实就是struts框架的基本基本层次。持久化层则是Hibernate来实现的。

17.24  系统架构

这几个层次关系是自顶向下的,上面的层次依赖下一层,而下一层对上一层的依赖很少,尽量做到没有,如同网络的ISO七层模型。bit论坛系统的设计同网络商店的系统设计很相似,读者可以参看网络商店的相应章节。

17.4.2  业务实体设计

一个系统的业务实体在内存中表现为实体域对象,在数据库中表现为关系数据,实现业务实体包括以下内容。

q       设计域模型,创建域模型实体对象。

q       设计关系数据模型。

q       创建对象—关系映射文件。

bit论坛中有以下的业务实体:注册用户、管理员、主题、话题以及话题的回复。下面对这些业务实体作一个简单的解释,后面章节会有详细的解释。

q     注册用户代表一个注册用户实体。主要包括用户的详细信息,如用户名、密码、地址之类的。

q     管理员代表一个系统管理员。它与注册用户一样的,只是权限不一样。

q     主题代表论坛中的一个主题。在主题下面有很多话题以及话题的回复,它们之间的关系是一对多的关系。

q     话题代表一个注册用户发标的话题。话题可以拥有回复,一个话题之能属于一个主题,一个话题可以拥有多个回复。

q     回复代表一个话题的回复。一个回复只能属于一个话题。

这些实体之间的关系如图17.25所示。

17.25  业务实体关系图

如图17.25所示,这里来介绍一下各实体之间的对应关系。具体关系如下。

q     主题与话题:一个主题可以拥有多个话题。一个话题只能属于一个主题,它们之间的关系是一对多的关系。在数据库中,一般的做法是通过在话题表中引用一个主题表的外键。但在这个系统中,由于使用Hibernate技术,所示没有在数据表中体现它们的关系。在Hibernate的映射文件中体现了两者的一对多的双向关系。

q     话题与回复:一个话题可以拥有多个回复,一个回复只能属于一个话题。它们之间的关系也是一对多的,同主题与话题。在具体实现时,也是和主题与话题的实现方法一样。

q     用户与话题:一个用户可以拥有多个话题,一个话题只能属于一个用户。它们之间的关系是一对多的关系。在具体实现时,要求删除一个用户时,该用户所属题也应该被删除。

q     用户与回复:一个用户可以拥有多个回复。一个回复只能属于一个用户。

17.4.3  业务逻辑设计

在本系统中,应用的持久化层采用Hibernate作为中间件,并使用了DAO设计模式实现对数据层的访问。DAO模式是J2EE核心模式中的一种,其主要的行为就是在业务核心方法和具体数据源之间再增加一层。用这一层来连接业务方法和数据源,这样就实现了两者的解耦。

因为具体持久层数据源可能是多样化的,可能是XML或者是关系数据库。在具体的关系数据库中,也可能是不同的产品,例如Oracle或者MySQL。通过使用DAO模式,业务核心部分就不用关心数据层是如何实现对数据库的操作的,而只关心自己的业务操作。对数据库的操作全部仍给了DAO代理,如图17.26所示。

17.26  DAO模式

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论