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

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

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

    posts - 26,  comments - 7,  trackbacks - 0
      作者:胡長城
    今天和同事chelsea 就活動實例狀態的實現思路上進行了討論。我們兩個站在了兩個不同的角度來看待,這兩個不同的角度也正好眼下最為常見到的兩種實現思路:
    helsea是從狀態角度來看待,當然也完全是從state pattern的角度來思考:狀態在達到某個狀態的時候,會引起或必須引起活動實例執行什么操作。

    而我是從活動實例的角度來考慮,活動實例的狀態只是活動實例的一個屬性體,是因為什么行為,造成了什么狀態的結果。


     這兩種觀點,沒有誰對誰錯,也沒有誰優誰劣,兩者是站在不同的角度來分析同一個問題。其實這兩種模式在應用中都是很普遍的,也都是能夠很好的解決問題的。不過在現有的workflow引擎實現中,基于活動實例的角度是占絕大多數的,比如obe,shark等等。所以我受這個的影響也是比較深的。


    先說說基于活動活動實例的角度的思路吧:



    讓我下先來看看狀態類:

    public final class WMActivityInstanceState extends WMObjectState {

    public static final int OPEN_NOTRUNNING_INT = 0;

    public static final int OPEN_SUSPENDED_INT = 1;

    }

    或者也可以這么表示:

    public enum WMActivityInstanceState{

    NOTRUNNIN(0),

    SUSPENDED(1);

    private int code;

    private WMActivityInstanceState(int code){this.code = code;}
    public int getCode(){return this.code}

    }




    對于活動實例來說,狀態只是其一個屬性而已:

    public class BasicActivityInstance extends BasicAttributedEntity{

    private int _state;

    public void setState(int state) {

    _state = state; }

    }

    或者也可以是

    Public void setState(WMActivityInstanceState state)




    所以,從活動實例的角度來看,狀態之間的關系是平行的。你可以在執行完一些初始化的操作之后,將活動實例的狀態設置為Initialized:當然這個操作你必須顯示的去設置活動實例(當然,你可以用一些Event去處理),比如調用活動實例的setState方法。至于為什么調用這個方法,或者此時設置的狀態是對是錯,活動實例并不關心。



    下面再來說說基于狀態角度的思路吧,這個思路大體可以說就是state pattern的應用。



         說道這兒,您可以看看這篇文檔:從工作流狀態機實踐中總結狀態模式使用心得 。當然如果您對state pattern不是很了解,那么建議你先看看這篇文檔:設計模式之state 。



        State模式的著眼點就是狀態,以狀態的變遷影響實例的行為和動作。其實這就是兩個不同的抽象體:state和stateOwner,我們可以看到,活動實例對象就表現為stateOwner。

       State模式的依據是狀態之間是有有向連接關系的,這有向連接關系其實就是狀態的轉換規則:A-B-C-D-A。

       激發狀態的變遷,是由外界的事件(Event)影響的:這個事件會告知,當前的活動實例狀態要從當前狀態往下一個狀態變遷。而活動實例并不知道下一個狀態是什么,這完全是狀態對象負責維護和告知的。



    至此,我們可以看出來了,兩種方式的不同:

    第一種方式(基于活動實例),其外界事件是影響到活動實例,或者說在事件中顯示的告知活動實例狀態從什么變為什么。

    第二種方式(基于實例狀態),其外界事件是影響到活動實例狀態對象,至于這個狀態的下一個狀態是什么,時間并不知道,完全由活動狀態之間的關系來維護。


    posted on 2007-10-28 12:12 jbpm 閱讀(708) 評論(0)  編輯  收藏 所屬分類: bpm應用
    主站蜘蛛池模板: 久久精品蜜芽亚洲国产AV| 亚洲综合色成在线播放| 亚洲日本香蕉视频| 免费国产黄网站在线观看| 久久久久亚洲Av片无码v| 免费国产99久久久香蕉| 亚洲一区无码中文字幕| 国产一级黄片儿免费看| 久久亚洲精品AB无码播放| 99国产精品视频免费观看| 亚洲高清免费在线观看| 免费观看美女用震蛋喷水的视频| 亚洲国色天香视频| 国产精品无码免费播放| 女bbbbxxxx另类亚洲| 国产精品亚洲二区在线观看| 中文字幕不卡免费高清视频| 亚洲综合一区二区精品导航| 波多野结衣在线免费视频| 亚洲大成色www永久网址| 日韩高清在线免费观看| 一级中文字幕乱码免费| 亚洲av综合av一区| 亚洲性线免费观看视频成熟 | 4虎永免费最新永久免费地址| 亚洲人成图片网站| www国产亚洲精品久久久日本| 日韩电影免费观看| 国产成人亚洲综合一区| 亚洲国产精品狼友中文久久久| 在线看片免费人成视频福利| 亚洲一区二区三区精品视频 | 免费无遮挡无码视频网站| 香蕉视频在线观看免费| 久久精品7亚洲午夜a| 青苹果乐园免费高清在线| 一级毛片a免费播放王色电影| 亚洲最大成人网色| 国产免费观看视频| 最近中文字幕mv免费高清在线 | 亚洲不卡中文字幕|