看了张老师关于银行业务调度系统的视频和源代码,非常佩服张老师的技术功底和面向对象的思想。同时也产生了一些自己的想法和对张老师代码的一些不足之处的改建意见。 一、系统的取号机只有三种方式的取号(普通客户,快速客户,vip客户),所以采用枚举的方式是比较合适的,因为枚举能产生固定个数的对象,用起来也比较方便。 二、创建普通服务窗口类,下面有两个子类(快速服务窗口和vip服务窗口)。这一点张老师在视频中也讲了,不过没有在课堂上实现,我把它实现了,这样就提高了代码的复用性。 三、根据系统需求的描述,是6个窗口按次序排列,1 -4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。而不是1号快速窗口和1号VIP窗口,这一点我也做了改进,更符合项目要求。 四、服务窗口不用每隔1秒检查,服务完后就检查是否有客户等待服务,而且最好不打印“没取得任务,空闲一秒”,因为作为模拟场景的输出,这样的阅读性不是很好。 五、客户取得号码的时候显示前面有几人在排队字样,如“9号VIP客户,欢迎光临,您前面有1位客户”,这样更符合真实场景。 六、按照项目需求的要求,异步随机生成各种类型的客户,生成各类型用户的概率比例为: VIP客户 :普通客户 :快速客户 = 1 :6 :3,所以满足比例的同时,具体时间也应该是随机的,而不是固定的。
根据以上几条意见,我试着编了一下代码的链接如下:
http://blog.csdn.net/flyingfox023/article/details/8972417
运行结果如下图所示:
|