标签:ar java sp on 2014 bs ef new as
/** * 抽象享元角色 * @author * @date 2014-10-15 */ public abstract class FlyWeight { /** * 内部状态 */ private String intrinsic; /** * 外部状态 */ protected final String extrinsic; /** * 构造方法 */ public FlyWeight(String _extrinsic){ this.extrinsic = _extrinsic; } public abstract void oprater(); public String getIntrinsic() { return intrinsic; } public void setIntrinsic(String intrinsic) { this.intrinsic = intrinsic; } } public class FlyWeightFactory { /** * 定义一个池容器 */ private static HashMap<String, FlyWeight> pool = new HashMap<String,FlyWeight>(); /** * 享元工厂 */ public static FlyWeight getFlyWeight(String extrinsic){ /** * 定义返回的元素 */ FlyWeight flyWeight = null; /** * 判断池容器是否存在该对象 */ if(pool.containsKey(extrinsic)){ System.out.println(extrinsic+"从池容器中取出"); flyWeight = pool.get(extrinsic); }else{ System.out.println(extrinsic+"放到池容器中"); flyWeight = new ConcreateFlyWeight(extrinsic); pool.put(extrinsic, flyWeight); } return flyWeight; } public class ConcreateFlyWeight extends FlyWeight { public ConcreateFlyWeight(String _extrinsic) { super(_extrinsic); } @Override public void oprater() { System.out.println("享元模式2。。。。。。。。。。。"); } } public class ConcreateFlyWeight1 extends FlyWeight { public ConcreateFlyWeight1(String _extrinsic) { super(_extrinsic); } @Override public void oprater() { System.out.println("享元模式1。。。。。。。。"); } }
标签:ar java sp on 2014 bs ef new as
原文地址:http://my.oschina.net/u/586094/blog/339916