[導(dǎo)入]IVarValueSet: Map語(yǔ)義的擴(kuò)展
Posted on 2005-12-28 22:22 canonical 閱讀(884) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): Witrix開(kāi)發(fā)平臺(tái) 關(guān)系數(shù)據(jù)庫(kù)提供的是集合存儲(chǔ)模型, query(fields, condition) ==> list of records, 可以從條件集合映射到記錄集合。
當(dāng)condition退化為單一的key, 而fields采用默認(rèn)值的時(shí)候,我們就退化到Map語(yǔ)義, 從key對(duì)象映射到value對(duì)象,而不是從集合映射到集合。
很
多時(shí)候我們只需要這種簡(jiǎn)單Map語(yǔ)義的存儲(chǔ)模型,例如用戶(hù)偏好設(shè)置的存儲(chǔ)。在這種受限的模型下我們也可以更直接的實(shí)現(xiàn)cache支持。如果我們希望在
Map的基礎(chǔ)上稍微擴(kuò)展一些集合操作的特性,可以通過(guò)key的結(jié)構(gòu)擴(kuò)展來(lái)實(shí)現(xiàn)。即規(guī)定key采用類(lèi)似url格式的字符串,實(shí)現(xiàn)key空間的樹(shù)形結(jié)構(gòu)。在
witrix平臺(tái)中,這種樹(shù)形結(jié)構(gòu)的映射關(guān)系通過(guò)IVarValueSet接口來(lái)實(shí)現(xiàn)。
interface IVarValueSet{
IVariant getVar(String name);
IVarValueSet getSubSet(String prefix);
}
變量名的格式規(guī)定為 a.b.c 或者/a/b/c. 這種變量結(jié)構(gòu)的組織和劃分方式其實(shí)與JBoss項(xiàng)目中的TreeCache結(jié)構(gòu)類(lèi)似。