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:希望对你用帮助) |