银行业务调度系统的需求:
银行内有6个业务窗口,1到4号窗口为普通窗口,5号为快速窗口,6号为VIP窗口
有三种对应类型的客户:VIP 普通 快速
异步随机生成各种类型的客户,生成各种类型用户
比例为VIP 普通 快速 1:6:3
客户办理业务所需时间有最大值和最小值,在该范围内随即社顶每个VIP可户以及普通可户办理业务所需时间。快速可户业务办理时间
为最小值
各类型可户在其对应的窗口按顺序依次办理业务。
当ip窗口和快速窗口没有可户办理时,可以处理普通可户的业务,一旦有可户等待办理的时候,优先办理对应的业务
随即生成时间间隔,以及业务办理时间最大值和最小值自定,可以设置
不实现GUI只考虑系统逻辑
面向对象的分析和设计
有三种对应类型的可户ip 普通 快速 异步随即身成各种类型的可户,各可户类型在其对应窗口按顺序一次办理业务。
因为每个可户其实就是银行号码机所产生的号码,所以先要有号码管理器
有三类可户,要有三个号码管理器对象,但是银行中的号码机器只有一个,所以号码机器设置为单利
各个类型的可户在其对应的窗口按顺序一次办理业务,窗口一次叫号
服务窗口将找到号码管理器,获取当前要服务的号码
通过需求分析,对类进行设计,取的2个类。
NumberManager和NumberMachine类
定义 一个 用于存储上一个客户 号码 的成员变量和用于存储所有 等待服务的客户号码的队列集合
定义一个产生新号码的方法和获取马上要为之服务的号码的方法 这2个方法被不同的线程操作了相同的数据,要进行同步分析过后,开始编写代码。