享元設計模式

2021-10-19 07:31:15 字數 1139 閱讀 6469

享元定義

**實踐

/**

* 享元實體物件

* 乙個學科可以包含多個學生(姓名,**)

* 所以學科為內部不可變狀態,而學生(姓名,**)為外部可變狀態

* * @author: zrh

* @date: 2021/2/3 15:51

*/@data

public class xianyuanmodel

}

/**

* 享元實體工廠類

* * @author: zrh

* @date: 2021/2/3 15:51

*/@slf4j

public class xianyuanmodelfactory ", model);

return model;

}xianyuanmodel model = new xianyuanmodel(subject);

pool.put(subject, model);

model.setname(name);

model.setphone(phone);

log.info("new乙個新物件:{}", model);

return model;

}}

/**

* 享元模式測試例項

** @param args

*/public static void main(string args)

new乙個新物件:xianyuanmodel(subject=數學, name=小明, phone=155555555555)

new乙個新物件:xianyuanmodel(subject=英語, name=小王, phone=155555555555)

使用物件池獲取物件:xianyuanmodel(subject=數學, name=小華, phone=155555555555)

new乙個新物件:xianyuanmodel(subject=語文, name=小李, phone=155555555555)

使用物件池獲取物件:xianyuanmodel(subject=語文, name=小天, phone=155555555555)

實際使用場景和優劣勢比較

設計模式 享元

運用共享技術有效地支援大量地細粒度物件。享 代表共享 元 基本單元 關鍵概念 內部狀態和外部狀態 以下情況都成立時方可使用 乙個應用程式使用了大量地物件 大量地物件造成了儲存開銷 物件地大多數狀態可變為外部狀態 刪除物件地外部狀態,可以使用相對較少地共享物件取代很多組物件 應用程式不依賴於物件表示 ...

設計模式(享元模式)

享元模式是設計模式中少數幾個已提高系統效能為目的模式之一。它的核心思想是 如果系統存在多個 相同的物件,那麼只需要共享一分物件的拷貝,而不必為每一次使用都建立新的物件。當有物件被大量復用時,特別是重量級的物件復用可以使用享元模式來提高系統效能。其優點如下 1.可以節省重複建立物件的開銷,因為被享元模...

設計模式 享元模式

享元模式flyweight flyweight 模式是乙個提高程式效率和效能的模式 會大大加快程式的執行速度。把物件中使用比較多,具有共同點的,拿出來做成乙個共享類,這樣就行成了共享模式。如 integer 物件在 128 127 使用的是同乙個物件。在這之間是共享的。享元中的角色 flyweigh...