1. 程式人生 > >路一步步走>> 設計模式十一:FlyWeight-享元

路一步步走>> 設計模式十一:FlyWeight-享元

package com.test.DPs.JieGou.FlyWeight;

import java.util.HashMap;

/**
 * 結構型:FlyWeight-享元		橋接:作用面為 物件
 * 
 * 用途:運用共享技術,有效地支援大量細粒度物件。
 */
abstract class flywei{}

public class FlyWeight extends flywei{
	Object obj;
	public FlyWeight(Object obj){
		this.obj = obj;
	}
}
class FlyWeightFactory{
	private HashMap<Object, FlyWeight> data;
	public FlyWeightFactory(){ data = new HashMap<>();}
	public FlyWeight getFlyWeight(Object object){
		if(data.containsKey(object)){			//if(data.containsKey(object)){
			return data.get(object);
		}else{
			FlyWeight flyweight = new FlyWeight(object);
			data.put(object, flyweight);
			return flyweight;
		}
	}
}