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");
  }
}

阅读更多
个人分类: 设计模式系列
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭