黑马程序员--银行业务调度系统

---------------------- ASP.Net+Android+IO开发S.Net培训、期待与您交流! ----------------------

需求分析:

1.    有三种类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、电话费之类业务的客户)。

2.       银行有6个业务窗口:1-4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。

3.       各种用户异步随机产生,产生的比率为:VIP客户:普通客户:快速客户= 163

面相对象的分析和设计:

1.有三种对应类型的客户:VIP客户,普通客户,快速客户 ,异步随机生成各种类型的客户,各类型客户在其对应窗口按顺序依次办理业务 。这就需要一个号码管理器对象,让这个对象不断地产生号码,变相的等同于随即产生了客户。由于有三类客户,每类客户的号码编排都是完全独立的,所以,本系统一共要产生三个号码管理器对象,各自管理一类用户的排队号码。这三个号码管理器对象统一由一个号码机器进行管理,这个号码机器在整个系统中始终只能有一个,所以,它要被设计成单例。

2. 各类型客户在其对应窗口按顺序依次办理业务 ,准确地说,应该是窗口依次叫号。但是各个窗口如何知道下一个该叫哪个号呢?这个用面向对象的思想分析:谁持有数据谁提供方法,必然是找相应的号码管理器,即服务窗口每次找号码管理器获取当前要被服务的号码

代码需实现的功能:

号码管理器:

方法:添加号码和取号码

注意:从名字上就可以看出这两个线程是互斥的  也就是说取号和添号这两个是不能同时进行的   故需要加锁

号码机:

这个需要注意的就是,要写成单例。

服务窗口:

不同的客户有不同的窗口服务,所以需要知道客户的类型,还要根据客户的不同类型进行分类服务。

顾客:

由于顾客只有三种确定类型所以很显然 单例比较好。

 

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------详细请查看: http://edu.csdn.net
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值