posts - 176, comments - 240, trackbacks - 0, articles - 7

          [導(dǎo)入]meta-enhanced Map

          Posted on 2005-11-22 17:53 canonical 閱讀(309) 評論(0)  編輯  收藏 所屬分類: Witrix開發(fā)平臺
            hibernate等O/R Mapping軟件包中使用javabean來作為數(shù)據(jù)的載體, 但這些bean一般除了get/set等數(shù)據(jù)訪問方法之外沒有什么其它的業(yè)務(wù)方法。 前一段時間有人認(rèn)為這是所謂貧血的領(lǐng)域模型(Anemia Domain Model),引發(fā)了一場討論。 其實這些bean的作用僅是表達(dá)了領(lǐng)域內(nèi)的數(shù)據(jù)關(guān)系, 本身并不可能作為完整的領(lǐng)域模型層存在。 在數(shù)據(jù)層,我們所需要的是數(shù)據(jù)對外暴露,因為我們無法預(yù)知這些數(shù)據(jù)的使用方式, 就象是實驗數(shù)據(jù)發(fā)表出來以后你無法預(yù)知別人如何分析一樣,這時信息流是開放的,向外的:信息在這里,放馬過來吧。 而在業(yè)務(wù)邏輯層,復(fù)雜的邏輯控制交織在一起,我們需要精細(xì)的控制信息通道,通過函數(shù)封裝,我們反轉(zhuǎn)了信息流的方向:取到什么數(shù)據(jù)是由調(diào)用者提供的信息決定 的。
               實際上,在ORM軟件中使用的bean基本上與一個Map類似,只是它具有java Class所提供的元數(shù)據(jù),而訪問數(shù)據(jù)時又必須通過get/set方法,因而在這些方法中能夠根據(jù)元數(shù)據(jù)動態(tài)的作出響應(yīng)。在witrix平臺的統(tǒng)一數(shù)據(jù)訪 問框架中主要基于Map等通用數(shù)據(jù)類型,而不是個性化的bean。為了使得Map具有與bean一樣的動態(tài)響應(yīng)能力,只需要加入meta的支持即可。
          interface IExMap extends Map{
               IMapChecker getChecker();
            Map getModifications();
            ...
          }
          在get/set之前可以通過IMapChecker來實現(xiàn)動態(tài)處理,對Map中數(shù)據(jù)所作的修改也可以記錄下來
          主站蜘蛛池模板: 邯郸县| 淄博市| 文成县| 阜南县| 韶山市| 汽车| 都昌县| 和静县| 东港市| 开封市| 汨罗市| 潼关县| 肇东市| 修水县| 林口县| 泾川县| 绵竹市| 广元市| 商水县| 凤凰县| 汾阳市| 翁源县| 阿拉善右旗| 淮阳县| 屏东市| 民乐县| 中江县| 阜城县| 汝南县| 千阳县| 东平县| 宜良县| 叶城县| 仁寿县| 博客| 富裕县| 全州县| 玉林市| 连平县| 灵宝市| 唐河县|