这个系统的面向对象思想比较好理解。这个系统的类比交通灯的多,但是感觉更接地气一点,更容易想到。
上一篇没有说定时器,这一篇我说说,其实就是一个线程在相隔多久执行一次而已。
银行系统的数据不会乱的原因是,每种客户的号是存在各自的容器中的,这点要非常清楚,其实就是6个线程在3个队列进行存储。核心。
认真地看完视频,脑子里整体联系一下,写代码就相当顺利了。所以我才不喜欢看着老师的代码来写代码,这样没有一个整体的感觉,也体会不到面向对象的思想。而且写代码的时候会觉得为什么老师要用那种方法,这样也可以。有时候确实没问题,有时候才发现这样做的好处在哪里。
这个系统的亮点在于怎么用面向对象的思想把各个抽象物体进行分析,再进行融合。我就贴一段定时器的代码吧,这样自己以后也可以看看。
Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(
new Runnable() {
public void run() {
// TODO Auto-generated method stub
int CustomerNO = NumberMachine.getInstance().getVipManger().generateNewNumber();
System.out.println("第" + CustomerNO + "个Vip客户进来了");
}
},
1,
Time.VipCustomer,
TimeUnit.SECONDS);