黑马程序员-银行业务调度系统学习-No.12
2011-12-20 17:35
441 查看
---------------------- 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
----------------------
看完张老师的银行业务调度系统,虽然这个面向对象的分析与设计的过程和交通灯管理系统相差不大,但对与我这入门级菜鸟来讲,这也是学习的盛宴,总能带来新鲜的感受和不同的收获。又记住了一句张老师的名言名理(虽不是原话但大意就是这样):编写代码的时候就是要学会自己欣赏自己,自己给自己找成就感!
银行业务调度系统需求: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
相关文章推荐
- 黑马程序员--银行业务调度系统学习
- 黑马程序员---张老师银行业务调度系统学习
- 黑马程序员--银行业务调度系统学习
- 黑马程序员_java学习日记银行业务调度系统
- 黑马程序员——java基础学习(银行业务调度系统)
- 黑马程序员——银行业务调度系统学习日志
- 黑马程序员学习笔记之十(银行业务调度系统学习)
- 黑马程序员:银行业务调度系统学习
- 黑马程序员-JAVA学习之银行业务调度系统分析与实现
- 黑马程序员 JAVA学习笔记 ——银行业务调度系统
- 黑马程序员——银行业务调度系统
- 黑马程序员_银行业务调度系统
- 黑马程序员_银行业务调度系统
- 黑马程序员——银行业务调度系统
- 黑马程序员_JAVA学习笔记12
- 黑马程序员-Java银行业务调度系统
- 黑马程序员---银行业务调度系统
- 黑马程序员--学习12
- 黑马程序员 java学习笔记——银行业务调度系统
- 黑马程序员-------------(十三)银行业务调度系统