银行业务调度系统

写在前面

      今天学习张老师的视频算是告一段落了,掐指算来奋战黑马至今已有五天,天天呆在小租屋里看张老师的视频,自从离开学校以来很少再有这样“废寝忘食”了。总结这五天不说是一个巨大的飞跃、但也着实有不少的的收获,感觉五天前的那封辞职信算是值了,五天来的学习我坚信自己的选择没有错,自己的选择我会一步步坚持走下去,即使头破血流;因为风雨之后的彩虹才足够美丽,张老师也说:未来是美好的,可乐会有的面包也会有的。

      下面将银行业务调度系统的知识点总结如下↓

 项目需求

       6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。

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

       各类型用户的概率比例为: VIP客户 :普通客户 :快速客户  =  1 :6 :3。

       客户办理业务所需时间有最大值和最小值,在该范围内随机设定每个VIP客户以及普通客户办理业务所需的时间,快速客户办理业务所需时间为最小值(提示:办理业务的过程可通过线程Sleep的方式模拟)。

      各类型客户在其对应窗口按顺序依次办理业务。

      当VIP(6号)窗口和快速业务(5号)窗口没有客户等待办理业务的时候,这两个窗口可以处理普通客户的业务,而一旦有对应的客户等待办理业务的时候,则优先处理对应客户的业务。

      随机生成客户时间间隔以及业务办理时间最大值和最小值自定,可以设置。 

 项目分析

       NumberManager类
定义一个用于存储上一个客户号码的成员变量和用于存储所有等待服务的客户号码的队列集合。
定义一个产生新号码的方法和获取马上要为之服务的号码的方法,这两个方法被不同的线程操作了相同的数据,所以,要进行同步。
       NumberMachine类
定义三个成员变量分别指向三个NumberManager对象,分别表示普通、快速和VIP客户的号码管理器,定义三个对应的方法来返回这三个NumberManager对象。将NumberMachine类设计成单例。

      CustomerType枚举类
系统中有三种类型的客户,所以用定义一个枚举类,其中定义三个成员分别表示三种类型的客户。
重写toString方法,返回类型的中文名称。这是在后面编码时重构出来的,刚开始不用考虑。
       ServiceWindow类
定义一个start方法,内部启动一个线程,根据服务窗口的类别分别循环调用三个不同的方法。
定义三个方法分别对三种客户进行服务,为了观察运行效果,应详细打印出其中的细节信息。

       MainClass类
用for循环创建出4个普通窗口,再创建出1个快速窗口和一个VIP窗口。
接着再创建三个定时器,分别定时去创建新的普通客户号码、新的快速客户号码、新的VIP客户号码。
       Constants类
定义三个常量:MAX_SERVICE_TIME、MIN_SERVICE_TIME、COMMON_CUSTOMER_INTERVAL_TIME

 

实现代码(部分)

       

 

知识总结:

       面向对象:谁拥有数据谁就对外提供操作这些数据的方法。

不是结束,只是一个小小的开始;我会一如既往的继续努力下去。一緒に頑張り。       

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值