工作流
一個(gè)工作流(workflow),是你程序中一個(gè)進(jìn)程的模型。它可以是“博客主題從草稿、審核到發(fā)布”的進(jìn)程。另一個(gè)例子是,當(dāng)一位用戶提交一系列不同的表單以完成一個(gè)任務(wù)時(shí)。類似的進(jìn)程最好從你的models中脫離,而且應(yīng)該在配置信息中進(jìn)行定義。
一個(gè)工作流的 definition(定義) 包括places(位置)和actions(動(dòng)作),以從一個(gè)位置來(lái)到另一個(gè)位置。 actions被稱為 transistions(過(guò)渡)。工作流也需要知道每個(gè)對(duì)象在工作流中的位置。那個(gè) marking store 寫(xiě)入了對(duì)象的一個(gè)屬性來(lái)記住當(dāng)前位置。
上面的專有名詞一般被用于討論工作流和 Petri nets。
Workflow組件支持狀態(tài)機(jī)(state machines)。狀態(tài)機(jī)是工作流的子集(subset),其目的是持有你的模型的一個(gè)狀態(tài)。在 工作流作為狀態(tài)機(jī) 一文可以讀到更多的關(guān)于狀態(tài)機(jī)的不同和特定的功能。
示例 ?
最簡(jiǎn)單的工作流是下面這種。它包括兩個(gè)places和一個(gè)transition。
當(dāng)用來(lái)描述一個(gè)真實(shí)業(yè)務(wù)時(shí),工作流可以是更復(fù)雜的。下面的工作流描述了在job程序中進(jìn)行填充的進(jìn)程。
當(dāng)你填寫(xiě)本例中的一個(gè)工作時(shí),根據(jù)所請(qǐng)求的工作之不同,會(huì)有4到7步。某些工作需要性格測(cè)驗(yàn),邏輯測(cè)驗(yàn),以及/或者需要用戶填寫(xiě)正式的需求。另一些則不需要。GuardEvent
用于在特定程序中決定“允許進(jìn)行的下一步是什么”。
通過(guò)像這樣定義一個(gè)工作流,進(jìn)程如何被展現(xiàn)就能知其大概。進(jìn)程的邏輯并不與控制器、model層或view層混為一談。步驟(steps)的次序只能通過(guò)改變“配置信息”才可以改變。