旅店管理系统中的类的概述

原创 2003年07月22日 10:18:00

(本以为这一片的标题会改为“旅店管理系统中的对象的概述”,但是发现Allen Holub也是用class作为设计时的名称,于是保留的原来的标题)

在上一篇中提到了Allen Holub对于对象以及OO的定义是这片开发文档进入了漫长的预备路程,但是我在Allen Holub 的这篇“Building user interfaces for object-oriented systems”很快的就读到这关于一个实例的设计。就是Allen Holub对于ATM的OO分析:

Allen Holub 提到,OO设计的第一步是简洁阐述我们要解决问题的主要部分。也许(或者肯定)这就是我在第二章“旅店管理系统问题的定义”提到的内容问题定义。但是现在看来我们的定义并不是足够的好,现在做如下更改:

首先我觉得这个系统不能仅用一个主要问题来描述而应该分为七个:预订房间,租用房间,结算,解除预定,候补预订和查询处理。而这七个问题也就是在前文提到的7个用例(很多人认为我在前一节中的用例阐述得很不够,我自己也是这样认为,于是我花了些时间读了Alistair Cockburn的“Patterns for Effective Use Cases” 和“Writing Effective Use Cases” (extract)的英文原文,我认为的确有必要认真书写用例文档。但是Alistair Cockburn也提到,在一些较小的系统中也可以简化用例的书写过程,同时使用模式书写用例的目的在于使系统的再开发和维护更简便,使开发过程中的其他人员--非用例撰写人员更容易了解系统所要解决的问题。因此我决定不再重新写用例这一节,而是在这里简单的重新勾勒一下。)。现在我在这里重新描述这7个问题:
1、预定房间:一个顾客打电话或以其他方式告诉旅店服务人员需要预订房间以及预定信息(标准,入住时间和天数应该包括入住人姓名等),旅店服务人员根据顾客提供的预定信息从房间信息中查询是否存在符合条件房间,并告诉顾客是否预定成功,如果存在,记录预定信息。
2、租用房间:顾客告诉旅店服务人员要求租用房间并提供租用信息(比预定信息要多),旅店服务人员根据顾客提供的房间息从客房信息中查询是否存在符合条件房间,并告诉顾客时候可以租用房间,记录租用信息。
3、延长租用房间:应该也是租用房间(暂定)。
4、结算:顾客提出结算,旅店服务人员根据租用信息得到租用费用,顾客交款,服务人员实现结算。
5、解除预定:顾客告诉旅店服务人员自己的预定情况(姓名等),服务人员找出预订,实现解除预定。
6、候补预定:预订房间条件并且房间已经出租或预定,如果在于租用时间之前出现房屋空闲,在自动实现预定(在固定时间检查这一状态)。
7、查询房间出租情况:管理人员根据查询条件对租用信息进行查询(应该是租用信息的部分或全部),找出租用信息。


从以上问题描述中我归纳出了以下类以及他们的功能。


1、房间信息:管理客房信息,供旅店服务人员查询。
2、预定信息:管理顾客姓名,房间种类,租用时间等信息。提供给旅店服务人员使用,实现预定房间。
3、租用信息:管理顾客姓名(需要更信息的内容),房间种类,租用时间等信息。提供给旅店服务人员使用。
4、旅店服务人员:根据顾客要求(预定信息,租用信息)进行查询,预订、候补预定、租用房间,解除预定,结账。
5、管理人员:查询预定及租用信息。
6、查询信息:提供给管理人员使用。

其中旅店服务人员和管理人员应该属于客户端的类,而其他则属于服务器端的类。(其中预定信息,租用信息以及查询信息应该以接口的形式存在)

以下使用上面归纳出来的类(其中的房间信息等都是根据我们以上定义的类实例化的对象)来对我们要解决的问题进行模拟:
1、预定房间:旅店服务人员向客房信息发出是否存在符合条件的客房的请求,客房信息回答yes或者no,如果答案是yes则输入顾客提供的预定信息,如果不存在通知客户,不存在上述房间,是否候补预定。如果顾客要求候补预定则进行候补预定(与预订房间基本相同,在输入信息时标明候补)。
2、租用房间:旅店服务人员向客房信息发出是否存在符合条件的客房的请求,客房信息回答yes或者no,如果答案是yes则录入顾客提供的租用信息,如果答案是no则租用失败。
3、延期:同租用。
4、结算:旅店服务员根据顾客提供的信息(顾客姓名,房间号码等)找出租用信息,根据租用信息中得出租用费用,收取费用,解除房间租用状态。
5、解除预定:旅店服务人员根据顾客提供的信息(顾客姓名等)找出预定信息,解除预定状态。
6、候补预定:(见预订房间)。
7、查询房间出租情况:管理人员根据查询信息进行查询。

其中有以下应该注意:系统应该在每天的固定时间进行信息自动更新,有如下内容:
1、自动查询是否存在过期的预定信息,如果存在则自动解除预定。
2、自动查询是否存在过期的租用信息,如果存在,通知旅店服务人员,由旅店服务人员(现实世界中的)通知顾客,实现结算或延期。
3、自动查询是否存在候补预定的房间可以转变成预定的,如果存在则通知旅店服务人员,由旅店服务人员(现实世界中的)通知顾客,如果顾客同意预定,则进行预订房间。

以上类似乎解决了旅店管理系统中我们提到的问题,但是其中仍经不起仔细的推敲,比如:在查询房间出租情况中管理人员是对什么进行查询的,如果是对租用信息或者是预定信息,则这两种信息应该是信息集合,而不是一个单个的信息,而租用房间和预订房间的问题中这两种信息应该是单个的信息。所以我对自己做出的上述的类的定义并不满意,相信大家存在更多的疑惑,希望能够得到更多人的指正。

待续

版权所有:idilent 网站转载请注明作者 其他转载方式请与作者联系(idilent@yahoo.com.cn)。

数据库课程设计——宾馆管理系统UML用例图

宾馆客户用例图
  • Code_Thinking
  • Code_Thinking
  • 2014年11月23日 10:10
  • 2595

数据库课程设计——宾馆管理系统UML类图

  • Code_Thinking
  • Code_Thinking
  • 2014年11月23日 10:15
  • 2516

原生态JAVAEE酒店管理系统系列二

有点晚了,放一部分代码上来 首先是domain层,先来两个class Hotel .java /** * */ package edu.fjnu.hotelsys.domain; ...
  • hhooong
  • hhooong
  • 2016年02月15日 22:15
  • 1679

基于Django1.10的python2信息管理系统,用于酒店预订管理

hotelbooksystem基于Django的python信息管理系统,用于酒店预订管理Base onPython: 2.7.12Django:1.10MySQL:5.1.73How to Run:...
  • jaket5219999
  • jaket5219999
  • 2017年03月17日 05:25
  • 291

旅店管理系统(uml)

  • mmfuthmm
  • mmfuthmm
  • 2014年10月18日 18:24
  • 299

旅店管理系统中clerk的详细描述

在“旅店管理系统中的类的概述”完成之后,我又仔细的审查了自己关于各个类的定义,我发现自己竟不知不觉地走入了EJB(Enterprise JavaBean)的范畴,从我在前文中定义的概念可以看出其中房间...
  • idilent
  • idilent
  • 2003年07月29日 08:15
  • 967

学生宿舍管理系统类图设计

需求文档 面对庞大的学生信息量,一套适合学生公寓使用的管理软件,能够非常方便地管理公寓,包括公寓内员工基本信息管理,学生信息管理,公寓信息管理等,还能便捷的查询公寓内的各种信息,提高了工作人员的工作...
  • u010419531
  • u010419531
  • 2014年06月12日 00:51
  • 2937

SSH整合开发Demo--酒店预订系统

酒店预订系统包括4项功能。 管理员管理:系统中设计了管理员管理菜单,在该菜单中可以直接跳转到房间管理、订单管理、客户管理的响应页面,并完成对房间、订单和客户信息的增加、删除和修改。 房间管理:实现按房...
  • hd520superman
  • hd520superman
  • 2017年02月18日 17:38
  • 435

Object类概述及其构造方法

类层次结构的根类 所有类都直接或者间接的继承自该类 构造方法 public Object() 子类的构造方法默认访问的是父类的无参构造方法...
  • zsp151296
  • zsp151296
  • 2017年03月22日 22:14
  • 99

常见对象_String类的概述

package cn.itcast_01; /* * 字符串:就是由多个字符给组成的一串数据。也可以看成是一个字符数串。 * 通过查看API,我们可以知道 * A:字符串字面值"abc"...
  • L1585931143
  • L1585931143
  • 2016年11月05日 00:04
  • 130
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:旅店管理系统中的类的概述
举报原因:
原因补充:

(最多只允许输入30个字)