黑马程序员--java7k破解题--银行调度业务

随机生成各种类型客户。
vip客户:普通客户:快速客户=1:6:3
6个业务窗口,1-4号为普通,5号为快速,6号为VIP窗口。
5 、6号在没有客户时,可以办理普通客户。
面向对象的分析和设计:
号码管理器产生客户,所以需要号码管理器。彼此独立产生。
号码管理器需要是单例设计。

取号机的代码实现:

public class NumberMachine {
			
			private NumberManager commonManager=new NumberManager();
			public NumberManager getCommonManager() {
				return commonManager;
			}
			public NumberManager getExpressManager() {
				return expressManager;
			}
			public NumberManager getVipManager() {
				return VipManager;
			}
			private NumberManager expressManager=new NumberManager();
			private NumberManager VipManager=new NumberManager();
			
			private NumberMachine(){}
			public static NumberMachine getInstance(){//单例设计模式。
					return instance;
			}
			private static NumberMachine instance=new NumberMachine();
}
顾客的枚举实现:

public enum CustomerType {
		COMMON,EXPRESS,VIP;
		public String toString(){
			switch(this){
				case COMMON:
					return"普通";
				case EXPRESS:
					return"快速";
				case VIP:
					return name();
			}
			return null;
		}
}
普通客户的实现

	private void commeService() {
								String windowName="第"+windowId+"号"+type+"窗口";
								System.out.println("");
								Integer number=NumberMachine.getInstance().getCommonManager().fetchServiceNumber();
									if(number!=null){
											long beginTime=System.currentTimeMillis();
											long costTime=System.currentTimeMillis()-beginTime;
											int maxRand=Constants.MAX_SERVICE_TIME-Constants.MIN_SERVICE_TIME;
											long serveTime=new Random().nextInt(maxRand)+1+Constants.MIN_SERVICE_TIME;
											try{
												Thread.sleep(serveTime);				 										
											}catch(InterruptedException e){
												e.printStackTrace();
											}
										
											System.out.println(windowName+"为第"+number+"个"+type+"客户服务,耗时"+costTime);
									}else{
										System.out.println("没有取到任务。休息一秒");
										try{
											Thread.sleep(1000);				 										
										}catch(InterruptedException e){
											e.printStackTrace();
										}
									}
							}
				 }};

快速客户以及VIP客户的代码和普通客户代码几乎一致,只需修改部分地方,在这不列出。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值