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

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


    網站導航:
     
    主站蜘蛛池模板: 国产成人免费a在线资源| 毛片免费vip会员在线看| 亚洲无码精品浪潮| 麻豆va在线精品免费播放| 免费国产在线观看| 一本一道dvd在线观看免费视频| 国产无遮挡色视频免费视频| 色窝窝亚洲AV网在线观看| 国产免费人成在线视频| 阿v免费在线观看| 亚洲愉拍99热成人精品热久久| 一级特黄a大片免费| 亚洲中文字幕无码一区| 亚洲免费观看视频| 亚洲成综合人影院在院播放| 国产卡一卡二卡三免费入口| 国产成人亚洲综合网站不卡| 免费一级特黄特色大片在线| 你懂的网址免费国产| 亚洲国产二区三区久久| 一二三四影视在线看片免费| 色天使亚洲综合一区二区| 亚洲黄片毛片在线观看| 野花香高清在线观看视频播放免费 | 国产在线观看免费av站| 久久亚洲精品成人av无码网站| 黄+色+性+人免费| 无码一区二区三区亚洲人妻| 亚洲欧洲无码AV电影在线观看| 亚洲成年人免费网站| 国产精品亚洲专区无码牛牛| 亚洲乱码国产一区三区| 国产卡一卡二卡三免费入口| 一级人做人a爰免费视频| 久久久久亚洲AV无码观看| 国产视频精品免费| 99久久人妻精品免费一区| 日本亚洲欧美色视频在线播放| 亚洲日韩一页精品发布| 免费无码AV电影在线观看| 中文字幕久无码免费久久 |