享元模式可以減少記憶體佔用,重複資料不再開闢記憶體。
Integer的-128~127,String的裝箱,我認為都可以算做享元模式。
其核心(偽)程式碼如下:
private static Map<T1,T2 > map= new HashMap<T1, T2>();
private ConstructorMethod() {}
public static method createObject(T1 t1) {
T2 t2= map.get(t1);
if (t2== null) {
t2= new ConcurrentWebSite(t1);
map.put(t1, t2);
}
return t2;
}
在一個類中通過一個Map來儲存資料,如果資料重複則不會建立。