<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 28,comments - 3,trackbacks - 0

    一、什么是Drools
        Drools是一個Bob McWhirter開發的開源項目,基于Charles Forgy's的Rete算法的,專為Java語言所設計的規則引擎。
        Rete算法應用于面向對象的接口將使基于商業對象的商業規則的表達更為自然。

    二、為什么要引入規則引擎
        對于大多數項目的應用,一般通過選擇些比較經典的、生命力強的框架,能使我們的開發更專注于商業邏輯的開發,提高我們的開發效率。
    這些框架包括表現層框架(Struts, JSF),持久化框架(JDO, Hibernate,ibatis)以及結構框架(EJB, Spring), 還有其它很多。每種框架都各有所長,給開發者提供子許多“即開即用”的功能。使用框架來部署應用意味著你避免了許多讓人厭煩的細節,讓你集中注意力到關鍵之處。然而這些框架沒有商業邏輯方面的,但對于項目來說,需求變更又是不可避免的,如何更大限度的分離商業邏輯,避免混淆于一般的流程控制中。


    根據上圖,可以清晰的看出如果有個商業邏輯框架存在,可以提高項目的靈活性、可維護性,從而達到敏捷開發。

    三、什么時候適合用規則引擎
    1、項目的復雜性

    如果一個項目是一個輕量級的應用,跟大多數框架一樣需要進行框架上復雜度的評估,以適應整個項目的管理。

    下面討論下EJB。

    為什么現在大多數J2EE應用摒棄EJB?

    EJB為了提供企業級應用集成了持久化、隔離性、安全性與事務完整性等系統服務,使開發者專注于業務本身要解決的實際問題,表明上看上去這樣的系統簡化了我們應用的開發,但這些業務功能實現的bean為了能在EJB容器管理下順利運行,需要提供一系列的模版接口,而且在業務邏輯中需要加入管理bean生命方法的功能。這些代碼的入侵性、緊耦合性、重復性使開發的風險及不確定因素急劇上升,而且對于各個EJB容器廠商的相關標準都不一致,導致系統的不可移植性都大大增加了整個項目的風險。

    四、怎么用Drools



    五、HelloWorld

    該示例由兩部分組成, 一個是調用規則的test.jsp :

    //設置一個測試用的VO
    Vo vo = new Vo();
    vo.setPoStatus("A:draft");

    //讀入規則
    RuleBase ruleBase = RuleBaseBuilder.buildFromURL("rule.drl");

    //把vo放入WorkingMemory中并執行
    WorkingMemory workingMemory = ruleBase.newWorkingMemory( );
    workingMemory.assertObject( vo );
    workingMemory.fireAllRules( );

    //顯示結果
    out.print(po.getPoStatus());

    一個是規則文件rule.drl:

    <rule-set name="test rules"
    <rule name="Bob Likes Cheese">
    <parameter identifier="vo">
    <java:class>com.ito.vo</java:class>
    </parameter>

    <java:condition>vo.getStatus().equals("A:draft")</java:condition>

    <java:consequence>
    vo.setStatus("B:order");
    </java:consequence>
    </rule>
    </rule-set>

    整個規則分成三段, 第一段定義剛剛放入的對象; 第二段用Java語法判斷條件; 第三段為條件符合時的執行語句

    經過小范圍的試用,發現沒有這么簡單,因為Drools主要提供了一個RETE的規則匹配算法和一個Script Engine,具體怎么用,還要靠自己。如果drl文件的定義方式和RETE算法能夠使條件的表達大大簡化,那么它就是有用的。否則,一段重構后的代碼能夠達到和drl文件相仿的功能。所以,還是要多看點基礎,把Business Rules用在正確的地方。
    posted on 2007-08-20 11:20 李大嘴 閱讀(516) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲中文精品久久久久久不卡| 国产国拍亚洲精品mv在线观看| 亚洲伊人久久大香线蕉结合| 午夜免费福利片观看| 亚洲成在人天堂在线| 国产精品免费看久久久 | 亚洲香蕉久久一区二区| 亚洲成人在线免费观看| 亚洲精品91在线| 亚洲精品动漫免费二区| 亚洲国产成人AV在线播放| 麻豆国产VA免费精品高清在线 | 亚洲黄色网站视频| 亚洲毛片在线免费观看| 在线aⅴ亚洲中文字幕| 亚洲AV无码一区二三区| 人妻在线日韩免费视频| 噜噜噜亚洲色成人网站∨| 午夜国产精品免费观看 | 亚洲成a人片7777| 免费看美女被靠到爽| 一区二区三区免费在线视频| 亚洲欧洲成人精品香蕉网| 无码国产精品一区二区免费16| 亚洲精品亚洲人成在线麻豆| 无码视频免费一区二三区| 久久亚洲中文字幕无码| 亚洲中文字幕无码久久综合网| 国产精品免费观看调教网| 伊人久久亚洲综合影院首页| 亚洲日本在线观看视频| 午夜视频在线免费观看| 亚洲丶国产丶欧美一区二区三区| 亚洲色欲久久久久综合网| 91久久精品国产免费一区| 亚洲精品蜜夜内射| 国产亚洲精AA在线观看SEE| 国产免费AV片在线播放唯爱网 | 精品免费视在线观看| 91丁香亚洲综合社区| 久久精品国产亚洲AV不卡|