黑马程序员-----银行业务调度系统

 ---------------------- android培训java培训、期待与您交流! ------------------------

银行的排号机是个司空见惯的机器,开始学习java之后就在思考如何用面向对象的思想来解决它

但是思考很长时间都没有实现,今天在视频中看到老师的精彩实现,真的很漂亮

抄在下面作为笔记:
这是取号码机器

public class NumberMachine {
 
 private NumberMachine(){}
 private static NumberMachine instance = new NumberMachine();
 public static NumberMachine getInstance(){
  return instance;
 }
 
 private NumberManager commonManager = new NumberManager();
 private NumberManager expressManager = new NumberManager();
 private NumberManager vipManager = new NumberManager();
 public NumberManager getCommonManager() {
  return commonManager;
 }
 public NumberManager getExpressManager() {
  return expressManager;
 }
 public NumberManager getVipManager() {
  return vipManager;
 }
 
}
下面是号码生成器,用的数据结构其实很简单,就是一个队列,先进先出的队列

而这个队列的实现使用一个链表list

import java.util.ArrayList;
import java.util.List;

public class NumberManager {
 private int lastNumber = 0;
 private List queueNumbers = new ArrayList();
 
 public synchronized Integer generateNewNumber(){
  queueNumbers.add(++lastNumber);
  return lastNumber;
 }
 
 public synchronized Integer fetchNumber(){
  if(queueNumbers.size()>0){
   return (Integer)queueNumbers.remove(0);
  }else{
   return null;
  }
 }
}

 

---------------------- android培训java培训、期待与您交流! ------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值