MDA 于JAVA

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

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


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 靖宇县| 恭城| 花莲市| 巴中市| 永年县| 色达县| 民勤县| 镇宁| 伊宁市| 盐津县| 周口市| 绵阳市| 合水县| 平昌县| 永定县| 襄汾县| 宁城县| 富平县| 蓬莱市| 喀什市| 梓潼县| 迁安市| 垦利县| 安康市| 任丘市| 张家界市| 甘肃省| 兴隆县| 闽清县| 靖安县| 马龙县| 聂拉木县| 玛纳斯县| 宁蒗| 和平区| 旅游| 于田县| 榕江县| 天门市| 抚州市| 突泉县|