<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品无码专区2| 国产在线a不卡免费视频| 国产v亚洲v天堂无码网站| 麻豆一区二区免费播放网站| 亚洲精品成人av在线| 免费视频成人手机在线观看网址| 亚洲精品亚洲人成在线观看| 中文字幕av无码不卡免费| 日本亚洲成高清一区二区三区 | 亚洲国产精品嫩草影院| 免费激情视频网站| 久久亚洲精品无码av| 亚洲精品tv久久久久久久久久| 永久免费观看黄网站| 国产亚洲精品线观看动态图| 国产啪精品视频网站免费尤物 | 亚洲无线码一区二区三区| 免费成人高清在线视频| 亚洲沟沟美女亚洲沟沟| 最近2019中文免费字幕| 成年免费a级毛片| 亚洲成AV人片在线观看WWW| 91短视频免费在线观看| jizzjizz亚洲日本少妇| 亚洲综合色婷婷七月丁香| 99re免费在线视频| 亚洲人成网站在线播放2019 | 色播亚洲视频在线观看| 日韩精品福利片午夜免费观着| 久久精品亚洲男人的天堂| 你是我的城池营垒免费看| 亚洲第一香蕉视频| 国产网站在线免费观看| 成人爽a毛片免费| 亚洲AV成人无码天堂| 亚洲色偷拍区另类无码专区| 18pao国产成视频永久免费| 美女视频黄a视频全免费网站一区| 久久亚洲AV无码精品色午夜麻| 成人黄动漫画免费网站视频| 成年免费a级毛片免费看无码|