二十三種設計模式之蠅量模式 享元模式

2021-08-06 06:36:33 字數 3143 閱讀 1009

蠅量模式(享元模式):通過共享方式高效支援大量細粒度物件. 將乙個物件抽象出內部屬性作為蠅量物件 抽象出外部屬性 作為管理外部狀態

特點:減少執行時物件例項的個數,節省開銷和記憶體

public classtree 

public voiddisplay()

}

public classtreetest 

}public voiddisplay()

}}

public classmaintest 

public static voidshowinfo()

}

public classtreeflyweight 

public voiddisplay(intxcoord,intycoord,intage)

}

public classtreemanager 

}public voiddisplaytrees()

}}

public abstract classplant 

public abstract voiddisplay(intxcoord,intycoord,intage);

}

public classtree2extendsplant 

}

public classgrassextendsplant 

}

public classplantfactory 

publicplant getplant(inttype)

}returnplanthashmap.get(type);

}}

public classplantmanager 

}public voiddisplay()

}}

*******************************傳統方式實現**************************************

max=859832320

total=58720256

freememory=56509424

used=2210832

時間=1502804524796

****************************************=

max=859832320

total=350224384

freememory=69184288

used=281 040 096

時間=1502804532526

****************************************=

max=859832320

total=350224384

freememory=69184288

used=281040096

時間=1502804532542

****************************************=

*******************************蠅量實現**************************************

max=859832320

total=58720256

freememory=56509424

used=2210832

時間=1502805198436

****************************************=

max=859832320

total=139460608

freememory=17249728

used=12 2210 880

時間=1502805199977

****************************************=

max=859832320

total=139460608

freememory=17249728

used=12 2210 880

時間=1502805199992

****************************************=

*******************************增加草**************************************

max=859832320

total=58720256

freememory=56509424

used=2210832

時間=1502806741592

****************************************=

max=859832320

total=179830784

freememory=17619888

used=16 2210 896

時間=1502806743749

****************************************=

max=859832320

total=179830784

freememory=17619888

used=162210896

時間=1502806744340

****************************************=

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

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

設計模式18 蠅量 享元 模式

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

二十三種設計模式之組合模式

組合模式 將物件聚合成樹形結構來表現 整體 部分 的層次結構。組合模式能讓客戶以一致的方式來處理個別物件以及物件組合。也就是我們可以忽略物件組合與個體之間的差別。應用場景 餐廳合併列印主選單 子選單 public abstract class menucomponent public string ...