黑马程序员_银行调度系统分析笔记
来源:互联网 发布:python打印百分数 编辑:程序博客网 时间:2024/06/05 14:08
------------ android培训、java培训、java博客、java学习型技术博客、期待与您交流! -------------
该题让求职者写一个银行业务调度系统。
银行中有6个窗口,4个窗口为普通窗口,办理一般业务。
5号窗口为快速窗口,办理快速业务。
6号窗口为VIP窗口,办理VIP业务。
当没有快速客户时,快速窗口也受理一般业务。
当没有VIP客户时,VIP窗口也受理一般业务。
根据面向对象的设计思想。
有一个取号器类:管理取出的号码的类型,分别对应客户的类型。取号器只能有一个,所以设计为单例模式、
窗口类:该类调用取号器中分发的号码,根据号码的类型,为对应的客户服务。
取号器类:
取号器可以生成三个号码管理器,分别管理一般客户的序列,快速客户的序列和VIP客户的序列。取号器只有一个,所以为了保证它在内存中的唯一性,使用单例设计模式。
关于号码管理类:
该类中提供一个分号的方法,用于派发一个整数序列,该序列表示着被受理的业务的顺序。
还有一个将序列派发给窗口的方法,窗口根据取号器类中的这个方法,获取应该为哪个客户服务。
因为序列被以上两个方法所共用,所以定义了一个ArrayList集合,当客户来取号的时候,将分配给客户的号码添加到集合中,再加这个号码返回给客户。当窗口获取服务序列时,就将集合中的第一个元素移除。因为操作的是同一个集合,有可能出现安全隐患,所以需要同步。
窗口类:
该类中,使用了线程池创建一个线程。
使用枚举定义了3个类型:一般,快速,VIP;
线程中,对不同类型的客户分配相应类型的窗口为其服务。一般窗口如果没有获取到需要服务的客户,就等待1秒重新获取。快速窗口没有获取到需要快速服务的客户,就接着获取需要普通服务的客户。VIP窗口也和快速窗口的流程一样。
小知识:switch效率比if else效率高
主函数:
在主函数中,开启一个快速窗口,一个VIP窗口,五个普通窗口。
再开启三个线程,分别生成需要普通服务的客户,需要快速服务的客户,需要VIP服务的客户。
运行时出现数组角标越界异常,因为窗口在向号码管理器要号的过程中,号码管理器类中的数组中并没有数据,所以抛出异常。
总结:
该实例模拟银行业务调度系统。
根据面向对象的思想,创建一个窗口类,用于服务客户和叫号。
创建一个取号器,用于给不同类型的客户分派不同的号码,将该号码添加到集合中。
不同类型的窗口,为取号器中分派的类型进行一对一的服务。
------------ android培训、java培训、java博客、java学习型技术博客、期待与您交流! -------------
详情请查看:http://edu.csdn.net/heima/
- 黑马程序员_银行调度系统分析笔记
- 黑马程序员_银行调度系统分析学习日记
- 黑马程序员_银行调度系统笔记
- 黑马程序员_银行调度系统学习笔记
- 黑马程序员_银行业务调度系统分析
- 黑马程序员_银行调度系统
- 黑马程序员_银行调度例子
- 黑马程序员_张孝祥银行调度系统
- 黑马程序员_银行调度业务
- 黑马程序员_银行调度系统
- 黑马程序员_银行调度系统
- 黑马程序员_银行调度系统例题
- 黑马程序员_银行调度系统
- 黑马程序员_银行调度系统
- 黑马程序员_银行调度系统
- 黑马程序员_银行调度业务系统
- 黑马程序员_银行调度系统
- 黑马程序员_银行调度系统
- linux网络编程二十七:多线程编程之信号量、互斥锁和条件变量
- STL for_each sort
- 京大知识产权:专利缴费指南
- SQLSERVER存储过程语法详解
- CV codes代码分类整理合
- 黑马程序员_银行调度系统分析笔记
- WebSocketDemo
- TCP协议疑难杂症全景解析
- Exception 例外處理
- JAVA程序员面试32问
- ubuntu下手动编译安装mysql笔记
- Delphi的学习笔记——内存操作函数
- 在ASP.NET MVC中为DropDownList 绑定数据库的值
- RAC维护手记02-VotingDisk 恢复/增/删/迁移