我應用中的很多不同屏幕一次又一次引用相同的實體/業務對象。
目前,每個屏幕都是指他們自己的每個對象的副本。另外,實體對象本身可能會暴露對其他實體對象的訪問,同樣會創建對象的新副本。
我試圖找到一個緩存解決方案。緩存設計:基於不可變關鍵碼的可變實體對象的輕量級
我在找類似於boost :: flyweight的東西。
但是,基於不可變的鍵/可變值和引用計數。
boost::flyweight<key_value<long, SomeObject>, tag<SomeObject> > object;
以上幾乎是完美的。 我正在尋找一個類似的容器,它將給SomeObject提供可變的訪問權限
編輯: 我喜歡flyweight的語法和語義。然而,輕量級只允許 const SomeObject &訪問,沒有機會修改對象。
編輯2:代碼必須在MSVC++上編譯6
任何想法?
「以上幾乎完美」 - 它有什麼問題? – 2009-07-11 18:46:06
flyweight只允許const對對象的訪問(const SomeObject&) – 2009-07-12 00:39:43
是否希望它是可變的,以增加每個flyweight的外在信息或僅僅修改共享的內在信息? – p00ya 2009-07-15 07:23:46