import java.util.Hashtable; /** * 享元模式 * @author TMAC-J * 享元模式一般和工廠模式一起使用,但此處為了更好說明,只用享元模式 * 定義:享元模式針對於是一種以時間來切換空間的方式,其公用同一實例,線程池,string都是其應用 */ publi... ...
import java.util.Hashtable; /** * 享元模式 * @author TMAC-J * 享元模式一般和工廠模式一起使用,但此處為了更好說明,只用享元模式 * 定義:享元模式針對於是一種以時間來切換空間的方式,其公用同一實例,線程池,string都是其應用 */ public class FlyweightPattern { public class Flyweight{ private Hashtable<String, Object> objs = new Hashtable<String, Object>(); public Object createObj(String className) throws InstantiationException, IllegalAccessException, ClassNotFoundException{ if(objs.get(className) == null){ Object obj = Class.forName(className).newInstance(); return obj; } else{ return objs.get(className); } } } public class A {} public class B{} public void test() throws InstantiationException, IllegalAccessException, ClassNotFoundException{ Flyweight flyweight = new Flyweight(); flyweight.createObj("A"); flyweight.createObj("B"); } }