----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
紧接着交通灯系统之后,又是一道面试题,是关于银行业务调度系统的,跟随着老师的思路,一共有六个窗口,四个窗口为普通窗口,一个快速窗口,还有一个VIp窗口,每个窗口所执行的任务接待的对象的先后顺序不同,看了张老师编译的程序,内心无比的佩服与羡慕,真得好完美,每种情况都能实现。
然后就是面向对象的分析与设计,分析其中有多少类,以及多少对象,和他们之间的关系。张老师用画图的方法,展示了取号器这个对象运作的方法,以及各个里面的系统返回的方式,很形象很生动。接下来就跟着张老师一起去具体的写出这个程序。
public class NumberManager {
private int lastNumber;
private List<Integer> queueNumber= new ArrayList<Integer>();
public synchronized int generateNewManager(){ //synchronized 多个进程访问会形成互斥
queueNumber.add(lastNumber);
return lastNumber++;
}
public synchronized int fetchServiceNumber(){
return queueNumber.remove(0); //返回被拿走的参数
}
}
以上是第一个类,接下来就是描述一个机器
public class NumberMachaine {
private NumberManager commonManager = new NumberManager(); //定义三种分类
private NumberManager experssManager = new NumberManager();
private NumberManager vipManager = new NumberManager();
public NumberManager getCommonManager() {
return commonManager;
}
public NumberManager getExperssManager() {
return experssManager;
}
public NumberManager getVipManager() {
return vipManager;
}
private NumberMachaine(){}
public static NumberMachaine getInstance(){
return instance;
}
private static NumberMachaine instance= new NumberMachaine();
}
最后还有一个服务窗口类我这里就不打出来了,这个系统张老师根据面对对象原理把原本很复杂的思路变得非常的清晰化,但是我们新手要做到这个水平还要努力学习,希望在黑马可以快速成长!
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------