設計模式之蠅量模式

2021-07-08 18:38:23 字數 984 閱讀 4750

模式定義:

該模式以共享的方式高效地支援大量的細粒度物件。通過復用記憶體中已經存在的物件,

降低系統建立物件的效能消耗。

遵循原則:

共享細粒度物件,降低記憶體消耗;

分開變化和不變部分。

適用場合:

(1)當系統中某物件型別的例項比較多的時候;

(2)在系統設計時,物件例項進行分類後,發現真正有區別的分類很少的時候。

知識擴充套件:

jdk中的string、integer就是典型的實踐者,拼音輸入法。享元模式中的物件分為

內蘊狀態【黑還是白】和外蘊狀態【位置】。內蘊狀態是不會變化的部分,而外蘊狀態

是隨外部環境隨時會變化的部分,由客戶端通過引數的形式傳入。

public abstract class abstractchess

public void point(int x,int y)

public void show()

}public class blackchess extends abstractchess

}public class whitechess extends abstractchess

}獲取棋子的工廠

public class chessfactory

public static chessfactory getfactoryinstance()

private final hashtablechache = new hashtable();

/*** 快取中有則直接拿出,沒有則先新建,放入,返回,返回後的棋子可以改變其外蘊狀態

*/public abstractchess getchessobject(character c)

if(abchess != null)

}return abchess;}}

測試public class client

if(abstractchess != null)}}

}

設計模式之蠅量模式

蠅量模式 讓某個類的乙個例項能夠用來提供多個 虛擬 例項,運用共享技術有效地支援大量細粒度的物件 特點 用途 缺點 舉例 你需要建立很多樹物件,每個樹物件有三個屬性 位置座標x y,年齡。如果為每個樹建立乙個物件,將造成大量的物件各自占用自己的記憶體空間,考慮使用蠅量模式,建立乙個treemange...

設計模式之享元模式(蠅量模式)

flyweight模式也叫享元模式,是構造型模式之一,它通過與其他類似物件共享資料來減小記憶體占用。換句話說就是通過共享的方式高效地支援大量細粒度的物件。享元模式的結構 享元模式的角色和職責 優缺點 優點 缺點 適用場合 我們有乙個景觀設計軟體專案 需要布置很多的樹 xy座標,樹的大小,外觀 假如需...

設計模式18 蠅量 享元 模式

大量的微小的物件,物件屬性拆開 內部屬性和外部屬性拆開 比如樹物件,普通設計為 有乙個集合儲存樹物件,每個物件有其對應的橫座標,縱座標,及年齡 而蠅量模式為 多個集合 每個集合長度一樣 第乙個集合儲存所有虛擬樹物件,第二個儲存所有樹的橫座標,第三個儲存樹的所有縱座標,第四個儲存所有樹的年齡.在需要的...