0

我有一個複雜的應用程序與許多頁面。每個頁面可以有許多可能的路線到其他頁面:'A'可以去'B'或'C','B'可以去'A'而不是'C'。等代表應用程序導航

而不是嵌入這個「在哪裏去下一個」邏輯在每一頁(恐怖!)我當然想要封裝它在一個主要的控制點。 'A'不需要知道'B'或'C'。

更好的是,我想將問題簡化爲配置問題。

這不是一個語言/框架的具體問題 - 這是一個問題,如何最好(簡單,實用)來表示和解釋工作流邏輯。

有沒有人有過將應用程序中的點之間的複雜流程作爲可配置設置的經驗?

+0

配置爲用戶或開發者?這是一個Web應用程序或軟件? – 2009-04-20 23:51:19

回答

4

你所描述的是一個非常經典的Finite State Machine。你有國家(頁),導航(轉換),但你也可以有進入/退出行動和轉換條件的東西。

隨着中說,這是值得思考的導航,你只是想的動態添加到頁面導航選項列表,或者是有一些涉及額外的智慧。想想導航是有效的,需要什麼信息導航中,數據可能想帶你到下一個導航等

我已經創建了狀態,只需前映射使用XML,如:

<states> 
    <state name="Open"> 
    <transition action="Close" state="Closed" /> 
    </state> 
    <state name="Closed"> 
    <transition action="Open" state="Open" /> 
    <transition action="Lock" state="Locked" /> 
    </state> 
    <state name="Locked"> 
    <transition action="Unlock" state="Closed" /> 
    </state> 
</states> 
0

您可能可以使用類似.NET工作流程基礎的東西來表示這種整潔。

0

這基本上是一個狀態機,其中每個頁面代表一個狀態,並且轉換存儲在您的配置中。谷歌爲此,你會得到可能有幫助的樣本。

0

幾乎每一個Web應用程序框架必須解決這個問題。對於java,看看Struts2,Spring MVC,Tapestry,Wicket等,看看各種方法。 (XML是自然捕獲在外部配置文件中的轉換信息的常用的方法。)

0

Press On涵蓋這樣的事情在一些深度。 (使用在設計和實施的用戶界面狀態機和狀態圖的明確表示。)