MDA 于JAVA

          Posted on 2008-06-26 14:58 英雄 閱讀(1398) 評(píng)論(0)  編輯  收藏

          現(xiàn)在元數(shù)據(jù)驅(qū)動(dòng)架構(gòu)的應(yīng)用日益廣泛了。這種模式的應(yīng)用一般為公司的架構(gòu)師根據(jù)經(jīng)驗(yàn)提供一套schema定義,而業(yè)務(wù)邏輯實(shí)現(xiàn)由原來的編碼轉(zhuǎn)為按照此schema定義數(shù)據(jù)。之后有些系統(tǒng)使用代碼生成機(jī)制來生成代碼;而有些系統(tǒng)則采用編寫一套框架類,執(zhí)行時(shí)解析定義數(shù)據(jù),從而執(zhí)行數(shù)據(jù)所表達(dá)的邏輯。這兩種方式各有利弊。
          對(duì)于第一種方式,會(huì)生成一堆固定模式的代碼,如果允許直接修改這些代碼,將造成很大的維護(hù)量;第二種方式,由于是解析執(zhí)行,非常值得懷疑是否會(huì)造成JVM hotspot機(jī)制失靈,從而導(dǎo)致性能問題;最理想的方式我個(gè)人認(rèn)為是生成代碼,但限制這些代碼為只讀代碼,同時(shí)保證這些生成代碼也要建立在框架結(jié)構(gòu)之上,從而可以再靈活動(dòng)態(tài)攔截進(jìn)代碼。這樣一方面,提供了MDA外的補(bǔ)充,即可以插寫代碼;另一方面可以充分利用JVM hotspot編譯執(zhí)行機(jī)制。
          前面也提到了,由于MDA起源于架構(gòu)師的經(jīng)驗(yàn),因此schema是不太可能保羅萬象的。MDA在項(xiàng)目上的應(yīng)用必須要提供一種補(bǔ)充機(jī)制。一般也就是采用AOP切面編程或回調(diào)機(jī)制來做這件補(bǔ)充。首先保證項(xiàng)目的價(jià)值實(shí)現(xiàn),然后再后期將這些代碼實(shí)現(xiàn)抽象進(jìn)schema的范圍,從而擴(kuò)大元數(shù)據(jù)的表達(dá)能力。我個(gè)人認(rèn)為元數(shù)據(jù)擴(kuò)大的極限就是編程語言,呵呵,想想吧,這個(gè)認(rèn)識(shí)不是空話,所以我MDA的系統(tǒng)一定是留著補(bǔ)充機(jī)制的。


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 太仓市| 怀集县| 吉首市| 桑日县| 滦平县| 浠水县| 大安市| 来凤县| 扶沟县| 灵台县| 临猗县| 上饶市| 桐柏县| 钟祥市| 伊川县| 含山县| 太湖县| 宝坻区| 板桥市| 定结县| 铅山县| 汽车| 巩义市| 怀远县| 康平县| 安顺市| 淮北市| 通江县| 尚志市| 泾源县| 襄樊市| 岑巩县| 临西县| 澄城县| 江源县| 凌海市| 兴和县| 苍南县| 霍城县| 芜湖市| 汽车|