A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 123_yaya 中级黑马   /  2014-6-10 13:38  /  1120 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 123_yaya 于 2014-6-10 18:17 编辑

银行调度系统问题分析得出三大主要类,一个是号码管理器,一个是号码产生器,一个是窗口叫号类。
我理解的是号码管理器就是管理号码,因为号码属于号码管理器类中的数据,所以有产生号码和取出号码这两个方法。
号码产生器,是管理  号码管理器 的类,所以里面定义了私有的普通,快速,VIP客户号码管理器这些数据。另外号码产生器只有一个所以设计为单例的。
而窗口叫号类,是通过号码产生器来产生叫号的方法。在这个类里面,张孝祥老师定义了一个枚举类来确定客户类型有普通,快速,VIP。疑问就在这里了,这里为什么要用到枚举类呢?同时枚举类里面的名称就是普通,快速,VIP,这不相当于是号码管理器的名字吗,不就是号码管理器的数据吗?为什么不是将这些名字通过封装在号码管理器里面来实现呢?为什么要另外定义枚举类呢?求解释。。

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

7 个回复

倒序浏览
枚举的名称是服务的名称,也可以说是不同客户的名称,因为一类服务对应一类客户。Vip服务对应VIP客户,楼主的意思是vipManager,expressManager,commonManager都是NumberManager这个类的实例(只是名字不同),都是在取号那么直接用NumberManager的对象直接去不就可以了,但是1)只是面向对象的思想,一类对象负责一类事物处理。2)真是的项目里面commonManager,VipManager除了取号以外应该还会有其他功能,也就是有自己独特的行为方式(也可以说是除了取号以为公共的行为外的客户需求)3)这只是一个系统大致框架
回复 使用道具 举报
本帖最后由 123_yaya 于 2014-6-10 14:21 编辑
不一样的颜色 发表于 2014-6-10 14:05
枚举的名称是服务的名称,也可以说是不同客户的名称,因为一类服务对应一类客户。Vip服务对应VIP客户,楼主 ...

我的意思是在NumberMachine中定义一个属性name。WindowService类中的customertype的属性为什么不能够是通过NumberMachine(号码产生器)的实例去调用vipManager,expressManager,commonManger这些类对象里面各自的属性name。并不是要用  【 都是在取号那么直接用NumberManager的对象直接去】的意思哦。
看视频,不是说数据属于谁就放在哪里吗?那么每个号码管理器应该都有自己的名字的啊?
回复 使用道具 举报
customertype是标示的服务的名字,根据服务的名字去创建相对应的commonManager,expressManager,vipManager只是名字要对应。1)customertype原本是要写在ServiceWindow里面的,原本是int num类型,switch(num)case 1:commonService();后来不是为了在MainClass里面设置窗口类型简单就改成了Enum类型,
2)主函数里ServiceWindow vipWindow = new vipService();
                vipWindow.setType(CustomerType.VIP);
                vipWindow.start();
是先设置类型在有start()函数获取NumberMachine(号码产生器)的实例vipManager,expressManager,commonManger,怎么可能用没有生成的实例对象vipManager,expressManager,commonManger去调用CustomerType呢哦?
3)楼主说“WindowService类中的customertype的属性为什么不能够是通过NumberMachine(号码产生器)的实例去调用vipManager,expressManager,commonManger这些类对象里面各自的属性name”。NumberMachine(号码产生器)是产生号码的,不是产生服务类型的CustomerType的,一个类干一种事情,这是类的单一职责的原则!!!CustomerType是WindowService类的属性,是WindowService类该干的事,你说不是么,亲:)(ps:希望对你用帮助)

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
不一样的颜色 发表于 2014-6-10 17:51
customertype是标示的服务的名字,根据服务的名字去创建相对应的commonManager,expressManager,vipManage ...

好,差不多想明白了。谢谢。
回复 使用道具 举报
你要参加第几期?
回复 使用道具 举报
123_yaya 来自手机 中级黑马 2014-6-12 23:44:07
7#
不一样的颜色 发表于 2014-6-10 19:00
你要参加第几期?

38期,你呢?你是工作了的吗?
回复 使用道具 举报
123_yaya 发表于 2014-6-12 23:44
38期,你呢?你是工作了的吗?

我去39期
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马