基于java酒店管理系统_课内资源 - 基于JAVA实现的互联网酒店管理系统
1 逻辑视角
互联网酒店管理系统中,选择了分层体系结构的风格,将系统分为3层(展示层、业务逻辑层、数据层)能够很好的示意整个高层抽象。展示层包括GUI页面的实现,业务逻辑层包含业务逻辑处理的实现,数据层负责数据的持久化和访问。分层体系结构的逻辑视角和逻辑设计方案如图1和图2所示。
2 组合视角
2.1 开发包图
互联网酒店管理系统的最终开发包设计如表1所示:
开发(物理包)
依赖的其他开发包
mainui
orderui, hotelui, userInfoui, accountui, promotionui
orderui
orderblservice, 界面类库包
orderblservice
orderbl
orderblservice, hotelbl, userInfobl, promotionbl, po
orderdataservice
Java RMI, po
orderdata
orderdataservice, databaseutility
hotelui
hotelblservice, 界面类库包
hotelblservice
hotelbl
hotelblservice, orderbl, userInfobl, promotionbl, po
hoteldataservice
Java RMI, po
hoteldata
hoteldataservice, databaseutility
userInfoui
userInfoblservice, 界面类库包
userInfoblservice
userInfobl
userInfoblservice, accountbl, orderbl, hotelbl, po
userInfodataservice
Java RMI, po
userInfodata
userInfodataservice, databaseutility
accountui
accountblservice, 界面类库包
accountblservice
accountbl
accountblservice, userInfobl, hotelbl, po
accountdataservice
Java RMI, po
accountdata
accountdataservice, databaseutility
promotionui
promotionblservice, 界面类库包
promotionblservice
promotionbl
promotionblservice, orderbl, hotelbl, po
promotiondataservice
Java RMI, po
promotiondata
promotiondataservice, databaseutility
vo
po
utilitybl
界面类库包
Java RMI
database utility
客户端开发包图
服务器端开发包图
2.2 运行时进程
在互联网酒店管理系统中,会有多个客户端进程和一个服务器端进程,其进程图如图5所示。结合部署图,客户端进程是在客户端机器上运行,服务器端进程是在服务器端机器上运行。
2.3 物理部署
互联网酒店管理系统中客户端构件是放在客户端机上,服务器端构件是放在服务器端机器上。在客户端节点上,还要部署RMIStub构件。由于Java RMI 构件属于JDK 1.8的一部分。所以,在系统JDK环境已经设置好的情况下,不需要独立部署。部署图如图6所示。
3 接口视角
3.1 模块的职责
客户端模块和服务器端模块视图分别如图和图所示。客户端各层和服务器端各层的职责分别如表和表所示。
客户端模块视图
服务器端模块视图
客户端各层的职责
层
职责
启动模块
负责初始化网络通信机制,启动用户界面
用户界面层
基于窗口的互联网酒店管理系统客户端用户界面
业务逻辑层
对于用户界面的输入进行响应并进行业务处理逻辑
客户端网络模块
利用Java RMI机制查找RMI服务
服务器端各层的职责
层
职责
启动模块
负责初始化网络通信机制,启动用户界面
数据层
负责数据的持久化及数据访问接口
服务器端网络模块
利用Java RMI机制开启RMI服务,注册RMI服务
每一层只是使用下方直接接触的层。层与层之间仅仅是通过接口的调用来完成的。层之间调用的接口如表所示。
层之间调用的接口
接口
服务调用方
服务提供方
OrderBLService; HotelBLService; UserInfoBLService; AccountBLService; PromotionBLService
客户端展示层
客户端业务逻辑层
OrderDataService; HotelDataService; UserInfoDataService; AccountDataService; PromotionDataService; DatabaseFactory
客户端业务逻辑层
服务器端数据层
借用客户用例来说明层之间的调用,如图所示。每一层之间都是由上层依赖了一个接口(需接口),而下层实现这个接口(供接口)。UserInfoBLService提供了UserInfo界面所需要的所有业务逻辑功能。UserInfoDataService提供了对数据库的增、删、改、查等操作。这样的实现就大大降低了层与层之间的耦合。
3.2 用户界面层的分解
根据需求,系统存在23个用户界面:登陆界面、客户主界面、酒店主界面、网站营销人员主界面、网站管理人员主界面、个人基本信息界面、评价酒店服务界面、订单信息界面、提交订单界面、撤销订单界面、注册会员界面、获取酒店信息界面、酒店基本信息、执行客户订单界面、恢复客户订单界面、更新退房信息界面、更新入住信息界面、制定酒店促销策略界面、制定网站促销策略界面、信用充值界面、撤销异常订单界面、分析未执行订单情况界面、调整用户界面。界面跳转如图所示。
服务器端和客户端的用户界面设计接口是一致的,只是具体的页面不一样。用户界面类如图所示。
3.2.1 用户界面层模块的职责
如表所示为用户界面层模块的职责。
模块
职责
MainFrame
界面Frame,负责界面的显示和界面的跳转
3.2.2 用户界面层模块的接口规范
用户界面层模块的接口规范如表所示。
MainFrame
语法
Init(args:String[])
前置条件
无
后置条件
显示Frame以及LoginPanel
用户界面层需要的服务接口如表所示。
服务名
服务
businesslogicservice.LoginBLService
登陆界面的业务逻辑接口
businesslogicservice.*BLService
每个界面都有一个相应的业务逻辑接口
3.2.3 用户界面模块设计原理
用户界面利用JavaFX的API来实现。
3.3 业务逻辑层的分解
业务逻辑层包括多个针对界面的业务逻辑处理对象。例如,Order对象负责处理订单界面的业务逻辑。业务逻辑层的设计如图所示。
业务逻辑层模块职责如表所示。
模块
职责
orderbl
负责处理和订单相关的服务
hotelbl
负责处理和酒店退订房相关的服务
userInfobl
负责处理和用户信息相关的服务
accountbl
负责处理和用户账号相关的服务
promotionbl
负责处理和促销策略相关的服务
3.4 数据层的分解
数据层主要给业务逻辑层提供数据访问服务,包括对于持久化数据的增、删、改、查。数据层模块的描述具体如下图所示。
4 信息视角
4.1 数据持久化对象
系统的PO类就是对应的相关的实体类,如下所示。
OrderPO类包括订单的编号(订单号为13位0~9的数字,前8位为当前日期,后5位由系统随机生成,日期格式为:yyyy-mm-dd,因此一天最多可以生成100,000条订单),开始时间,退房时间,最晚订单执行时间,房间类型,房间数量,预计入住人数,儿童数,订单状态(包括已执行、未执行、已撤销、异常),价格(大于等于0、精确到小数点后2位的浮点数),折扣,折扣后总额
HotelPO类包括酒店名称,地址,所属商圈,联系方式,简介,评分,评价,空余房间数,房间总数
UserInfoPO类包括客户的编号(格式为一个字母加5位0~9数字,普通客户以“N”开头,企业客户以“E”开头),用户名,密码,分类(普通客户、企业客户),联系方式,信用值,企业名称,生日(日期格式为:yyyy-mm-dd)
AccountPO类包括用户的编号(用户账号统一采用一个字母加5位0~9数字格式,网站管理人员账号以“A”开头,网站营销人员账号以“M”开头,酒店以“H”开头,普通会员账号以“N”开头,企业会员账号以“E”开头),密码
PromotionPO类是HotelPromotionPO和MarketPromotionPO的父类
HotelPromotionPO类包括促销类型,开始日期,结束日期(日期格式为:yyyy-mm-dd),活动名称,活动折扣;生日折扣;房间数,房间数折扣;企业折扣
MarketPromotionPO类包括促销类型,开始日期,结束日期(日期格式为:yyyy-mm-dd),活动名称,活动折扣,活动简介;商圈名称,商圈等级,商圈折扣;会员等级,每次升级所需的信用值,每个等级对应的折扣
4.2 Txt持久化格式
统一用*.ser格式
4.3 数据库表
数据库中包含Order表,Hotel表,UserInfo表,Account表,HotelPromotion表,MarketPromotion表
5 原型设计
个人基本信息界面
客户主界面
提交订单界面
网站管理人员主界面
网站营销人员主界面
订单列表界面
酒店主界面
酒店基本信息界面