2013-07-24 59 views
6

我有一個工作流程,進去序列要使用的工作流程設計模式的類型?

甲 - >乙 - 「ç - > d - >電子

我需要一個設計模式,它讓我在他們之間用最少的代碼更改添加的狀態。

http://en.wikipedia.org/wiki/Workflow_patterns

以下哪種設計模式的工作原理?

+0

您是否被迫使用該維基百科頁面中的內容或對一般解決方案感興趣? –

+0

即時通訊感興趣的一般解決方案..那些在維基只是例子 – seesee

+0

你能告訴你已經有什麼樣的工作流程? – Rakesh

回答

8

你可以看看Petri網implementions,牙石風格框架,如Jacob,虛擬機像PVM或的statemachine實現像SCXML儘管後者正在等待狀態的進程然後做一些事情,所以您需要將控制流轉換爲數據流。

如果您想自己實現它,您需要確保將控制權交給某個運行時控制器,而不是僅僅調用下一個節點,因爲這會打擊您的堆棧。這個運行時控制器也可以將一個上下文對象注入到活動的可運行參數中,這樣就可以在活動之間共享狀態。請在下面找到一個粗略的草圖:

interface Activity { 
    Activity run(SharedContext context); 
} 

class A implements Activity { 
    public Activity run(SharedContext context) { 
     doA(context); 
     return new B(); 
    } 
} 

class B implements Activity { 
    public Activity run(SharedContext context) { 
     doB(context); 
     return new C(); 
    } 
} 

// runtime controller 
SharedContext context = new SharedContext(); 
Activity next = new A(); 

while (next != null) { 
    next = next.run(context); 
} 
2

您可以嘗試activiti。您也可以使用自己設計的工作流程eclipse plugin

+0

不希望使用任何其他API。只是一個簡單的產品... – seesee