关于银行调度系统笔记

关于银行调度系统笔记


【思路】:我们可以考虑号码管理器,号码控制器,业务窗口。
号码管理器生成三种类型的客户,因为三种客户都是相对独立的,则,需要三种号码管理器来生成。生成号码给客户后,必须还得传递一个信息给业务窗口,提醒窗口有多少个号码生成了,可以叫号了。
业务窗口有三种,普通、快速和vip。则可以设计成三个这样的方法。根据传递的参数来分别对应接受三种客户。

【需要注意的是】:

三个号码管理器的设计,号码控制器。以及获取号码,返回给业务窗口号码的方法怎么结合起来。
可以先设计一个号码管理器(类),张老师使用NumberManager类,里面有生成号码的方法和一个返回给窗口号码信息的方法,教程中把这两方法前用了synchronized修饰(他表示的是同步)。因为考虑到这两个方法同步运行时会同时访问号码这个资源(程序中定义了一个lastNumber变量,赋初值为1,既默认从一号开始,当对象调用生成号码的方法时,lastNumber被访问,同时的,传递给窗口的方法也会访问这个lastNumber资源,synchronized方法有效的解决了这样的冲突问题)。
然后再设计一个管理这三种号码类型的管理器类NumberMachine类。其类内new三个NumberManager类的对象,分别表示普通,快速和vip。

设计一个窗口类ServiceWindow类。其类中有处理三种不同类型客户的方法。根据传递进来的参数的不同,调用不同的方法。教程中用start方法来启动这三种方法的调用,又用到了创建一个线程池来启动线程。
教程为了代码的专业性和可读性。把需要传递进来的3中类型参数有单独设计一个枚举类。
以及一个处理客户耗时的普通类。

最后创建一个main测试类,new 4个普通窗口,1个快速一个vip。
又用到线程池,模拟出三种客户的取号。



综合:本实例使用到了单例和线程池技术,后者有难度,不容易想到。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值