java软件体系结构设计模式-------对象缓存器

import java.util.*;


public class ItemCache {
  private final static int Max_cache_size = 5;
  Vector<String> cache;


  public ItemCache() {
    cache = new Vector<String>();
  }


  public String getItem(String code) {
    String barCode = null;
    int pos = cache.indexOf(code);
    if (pos != -1)
      barCode = (String) cache.get(pos);
    return barCode;
  }


  public void addItem(String code) {
    // if the max limit is reached
    // remove the LRU item
    if (cache.size() == Max_cache_size) {
      cache.remove(0);
    }
    cache.add(code);
  }

}


public class ItemManager {
  ItemCache cache;
  DBManager manager;


  public ItemManager() {
    cache = new ItemCache();
    manager = new DBManager();
  }


  public void activate(String code) {
    if (cache.getItem(code) != null) {
      System.out.println("Item Already Activated - cache");


    } else {
      if (manager.isActiveItem(code)) {
        System.out.println(
          "Item Already Activated - DB Access");
      } else {
        manager.activateItem(code);
        System.out.println(
          "Item Activated successfully");
        //add to the cache
        cache.addItem(code);
      }
    }
  }
}
class DBManager {
  public boolean isActiveItem(String code) {
    //db access code goes here


    //assume that the item is not already activated.
    return false;
  }


  public void activateItem(String code) {
    //db access code goes here
  }


}


public class Client {
  public static void main(String[] args) {
    ItemManager manager = new ItemManager();


    manager.activate("1001001000");
    manager.activate("1001001001");
    manager.activate("1001001002");
    manager.activate("1001001000");
    manager.activate("1001001004");
    manager.activate("1001001005");
    manager.activate("1001001006");
    manager.activate("1001001002");
    manager.activate("1001001004");
    manager.activate("1001001002");
    manager.activate("1001001000");
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值