黑马程序员-银行业务调度系统学习-No.12
来源:互联网 发布:淘宝拍摄图像相机设置 编辑:程序博客网 时间:2024/05/16 12:30
---------------------- android培训、java培训、期待与您交流! ----------------------
看完张老师的银行业务调度系统,虽然这个面向对象的分析与设计的过程和交通灯管理系统相差不大,但对与我这入门级菜鸟来讲,这也是学习的盛宴,总能带来新鲜的感受和不同的收获。又记住了一句张老师的名言名理(虽不是原话但大意就是这样):编写代码的时候就是要学会自己欣赏自己,自己给自己找成就感!
银行业务调度系统需求:6个窗口,1-4号为普通窗口,5号为快速窗口,6号为VIP窗口,分别对应不同的客户,各类客户的概率比率为:(VIP:普通:快速 = 1:6:3),客户办理业务时间由最大值与最小值之间随机产生,用线程sleep模拟,各类型客户在其对应窗口按顺序依次办理业务,当56号窗口没有对应客户时可以服务普通客户。
同上个项目,我的学习方式是看完张老师的视频讲解后,自己默想一遍,分析业务过程和梳理分析思路,代码敲一敲,但是自己也只能半自敲半参考,还得多复习多学习。下面是自己看了视频后背着视频教程整理的思路:
1、分析系统对象,该合并的合并,该遗弃的遗弃;
对象有窗口,客户,但是实际中已经把客户抽象为所取得排队号码,只有取了号码,才视为需要等待服务的客户,所以这儿客户对象应转换为号码,共3种号码(对应3中客户),每种号码由一个号码管理器操作,号码是由取号机产生的,所以需要一个客户取号机作为对象,一个银行一个客户取号机,里面对应3种号码,所以号码管理器作为取号机的3个成员变量,取号机设计为单例。另外,操作窗口与客户之间的业务关系由一个服务类代替,所以主类有这3个。
2、分析每个对象需要的属性和方法;
号码管理器需要一个变量用于存储临时产生的号码,然后一个集合存储所有产生的号码,这是两个成员属性;对于方法,需要一个生产号码的动作和一个号码被处理的动作。
3、最好用画图的形式描述每种对象之间的关系;
因为取号机里面可以取3种号码,每种号码代表一类客户,即一类对象,所以取号机应该包含3个号码管理器,号码管理器作为取号机的3个属性;窗口服务类则要指挥窗口合理处理客户号码。
4、编写每个对象的方法骨架;(注意处理资源问题和线程安全)
号码管理器的生产号码和号码被取方法因为不同对象调用,而资源只有一个,所以需要互斥同步,取号机应该可以调用属于本身的号码管理器;窗口服务类包含3种服务,应该是3个线程,每个线程处理的事物大致相同。
5、方法细写
6、编写主调类
创建窗口对象和号码对象,启动窗口服务
7、测试
其它笔记
1、变量类型尽量面向父类或接口上级,这样使用更灵活,更“专业”
2、程序中的常量最好单独定义一个类
3、创建线程用java5的新方法,用线程池,效率更高。
---------------------- android培训、java培训、期待与您交流! -------------
--------- 详细请查看:http://edu.csdn.net/heima
- 黑马程序员-银行业务调度系统学习-No.12
- 黑马程序员:银行业务调度系统学习
- 黑马程序员 银行业务调度系统学习笔记
- "黑马程序员”银行业务调度系统学习日志
- 黑马程序员---银行业务调度系统学习笔记
- 黑马程序员--银行业务调度系统学习
- 《黑马程序员》银行业务调度系统--学习笔记
- 黑马程序员-银行业务调度系统学习笔记
- 【黑马程序员】银行业务调度系统学习总结
- 黑马程序员----银行业务调度系统学习笔记
- 黑马程序员---银行业务调度系统
- <黑马程序员>银行业务调度系统
- 【黑马程序员】银行业务调度系统
- 黑马程序员--银行业务调度系统
- 《黑马程序员》 银行业务调度系统
- 黑马程序员-----银行业务调度系统
- 黑马程序员--银行业务调度系统
- 黑马程序员 银行业务调度系统
- asp.net 开发积累
- 学习使用libiconv库
- linux教程-ftp服务器配置
- 美国虚拟PSTN号码
- 实现Twitter自动加载更多功能
- 黑马程序员-银行业务调度系统学习-No.12
- hibernate中lazy什么时候不用
- hello world
- 写给学单片机的年轻人
- F# 代理与超时
- Linux-System-Call and User Space
- asp.net正则表达式帮助类
- 删除文件行
- 该死的2010年:100元越来越像10元了