設計模式之Flyweight 打球篇

2021-03-31 08:56:32 字數 773 閱讀 4129

週末沒事,和朋友約好去體育館(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)模式

現在在大力推行節約型社會,浪費可恥,節儉光榮 在軟體系統中,有時候也會存在資源浪費的情況,例如,在計算機記憶體中儲存了多個完全相同或者非常相似的物件,如果這些物件的數量太多將導致系統執行代價過高。那麼,是否存在一種技術可以用於節約記憶體使用空間,實現對這些相同或者相似物件的共享訪問呢?答案是肯定的,...