黑马程序员_银行业务调度系统
来源:互联网 发布:批量申请淘宝小号 编辑:程序博客网 时间:2024/05/18 02:24
------- android培训、java培训、期待与您交流! ----------
银行业务调度系统
一、系统功能需求与实现:
1.银行有三种业务类型,共6个业务窗口:1-4号是普通业务窗口,5号是快速业务窗口,6号是VIP窗口。
2.模拟客户的到来,按概率比例,异步随机生成各类型的用户。
3.模拟各窗口为客户办理业务,办理业务所需时间有最大最小值,快速业务所需时间为最小值。其余业务办理时间为最大最小值间的随机数。
4.各类型客户在对应窗口按顺序依次办理业务。
5.当VIP窗口和快速窗口暂无对应类型客户办理业务时,可办理普通业务。一旦有对应客户等待,则优先办理对应客户业务。
二、面向对象的分析与模型设计:
号码生成器类:
属性:最新号码变量、号码集
方法:生成新号码、获取号码
号码管理器类:
属性:三个号码生成器对象,分别对应三种业务类型;管理器的单例;
方法:获取三个对应生成器对象的getter方法
业务类型:(枚举类)
对象:普通、快速、VIP
服务窗口类:
属性:窗口ID号、窗口类型、服务时间的最大值、最小值
方法:开启窗口服务、普通服务、快速服务、VIP服务
服务主类:
生成六个窗口对象,并为每个窗口对象分配一个线程:
四个普通窗口对象,一个快速窗口线程,一个VIP窗口线程。
使用预定周期频率的线程对象,模拟三类客户的出现,出现概率为: vip:普通:快速 == 1:6:3
三、涉及的重要知识点:
1. 面向对象的分析与设计思想,类的属性和方法的设计与封装
2. 枚举类的应用
3. Executors创建线程及预定线程的应用,及线程的同步知识
四、个人总结:
通过此系统的练习,觉得最核心部分就是面向对象的分析与设计,这是解决问题的入口,在理解业务需求的基础上去分析、去抽取类,以及类中包含的属性和方法。其次,是线程的使用方面,通过Executors类及其子类对象来创建线程很方便,而且预定固定周期的线程能替代定时器的功能,很强大。整个系统的模拟过程中,还要注意线程同步的问题。根据业务的情况,将号码管理器设计为单例,将管理器内的三种号码生成器设计为公共资源,在对此资源进行存/取的访问时,就要实现线程同步。
------- android培训、java培训、期待与您交流! ----------
详情请查看:
- 黑马程序员_银行业务调度系统
- 黑马程序员_银行业务调度系统
- 黑马程序员_银行业务调度系统
- 黑马程序员_银行业务调度系统
- 黑马程序员_银行业务调度系统
- 黑马程序员_银行业务调度系统
- 黑马程序员_银行业务调度系统
- 黑马程序员_银行业务调度系统
- 黑马程序员_银行业务调度系统
- 黑马程序员_银行业务调度系统
- 黑马程序员_银行业务调度系统
- 黑马程序员_银行业务调度系统
- 黑马程序员_银行业务调度系统
- 黑马程序员_银行业务调度系统
- 黑马程序员_银行业务调度系统
- 黑马程序员_银行业务调度系统
- 黑马程序员_银行业务调度系统
- 黑马程序员_银行业务调度系统
- OpenTSDB配置安装
- OpenTSDB安装HBase
- 算法的力量(转李开复)
- 不同颜色区分当天时间和其他时间
- MySQL在UBUNTU12.04下的安装、停止、重启和启动
- 黑马程序员_银行业务调度系统
- UVa 537 - Artificial Intelligence?
- linux之cut用法
- memcached-items操作
- 无法通过远程桌面登录服务器,并提示需要提供许可证的问题解决
- virtualbox报错,Please install the virtualbox-ose-dkms package and execute 'modprobe vboxdrv' as root
- Android 驱动开发系列五
- 跨平台跨语言的Protobuf,又称ProtocolBuffer
- 堆排序