設計模式之
flyweight
——打球篇
週末沒事,和朋友約好去體育館(gymnasium)打球,這個體育館(gymnasium)提供各種球種,因為我們人多,因此選擇了羽毛球(badminton),兵乓球(pingpangball)、排球(vollyball)等球種,我們首先要填寫選球清單(playballlist),然後去器材部領球。
下面我們看看該如何實現這個過程呢?
1、我們首先先定義玩球(playball)這樣乙個介面類:
public inte***ce playball
2、玩具體的球(playconcreteball)是對玩球(playball)介面的具體實現:
public class playconcreteball implements playball
}
3、定義體育館(gymnasium)類:
public class gymnasium
return playball;
}
public hashtable getplayballlist()
}
4、編寫測試類:
public class test
}
5、說明:
a:
flyweight
定義:避免大量擁有相同內容的小類的開銷
(如耗費記憶體
),使大家共享乙個類(元類
)。
b:從本例中我們可以看到通過選球清單,我們獲得了所需的球種,因此關鍵點就是填寫好這張選球清單,其實
flyweight
的重點也就在這裡。
設計模式之Flyweight模式(筆記)
享元模式 運用共享技術有效地支援大量細粒度的物件。適用場合 假設乙個應用程式適用了大量的物件。而大量的這些物件造成了非常大的儲存開銷時就應該考慮使用。首先定義乙個iflyweight介面 public inte ce iflyweight 接著定義乙個concreteflyweight繼承iflyw...
FlyWeight設計模式
先做個比方 乙個停車場有1000輛車子,每輛車子都是乙個物件,每個物件例項占用記憶體0.1m,那麼總共點用100m 如果數量再多些10000,100000.系統記憶體很容易消耗完.我們可以看出這麼車子有很多是相同的,那麼是否可以用共享的方式來減少例項的數量呢?答案是肯定的,於是flyweight方式...
設計模式之享元(flyweight)模式
現在在大力推行節約型社會,浪費可恥,節儉光榮 在軟體系統中,有時候也會存在資源浪費的情況,例如,在計算機記憶體中儲存了多個完全相同或者非常相似的物件,如果這些物件的數量太多將導致系統執行代價過高。那麼,是否存在一種技術可以用於節約記憶體使用空間,實現對這些相同或者相似物件的共享訪問呢?答案是肯定的,...