2011-01-19 82 views
0

我正在嘗試創建一些n層應用程序,並且在分離UI和邏輯時遇到了困難,我想知道屬於哪個UI以及屬於哪個邏輯。用戶界面和邏輯之間的區別是什麼?

例如,一個簡單的應用程序,它允許您登錄,然後要求用戶填寫表單或顯示先前表單的列表。我能想到的兩種可能的解決方案:

  1. 的邏輯告訴它需要登錄的用戶界面,用戶界面則要求輸入用戶名和密碼的用戶,並將其發送到邏輯。邏輯然後告訴用戶界面需要詢問用戶他們是否想填寫表格或顯示以前的表格。 UI然後將此選項發送給邏輯,並且邏輯通知UI顯示錶單或顯示列表。 在這裏UI沒有狀態,真的很笨,基本上邏輯必須告訴UI顯示什麼以及何時顯示它。

  2. 用戶界面顯示登錄表單,當用戶輸入用戶名/密碼時,用戶界面將這些用戶界面發送到登錄邏輯。如果登錄是成功的,則UI詢問用戶該做什麼,如果用戶想要顯示其顯示錶單的表單,如果想要顯示該列表,則UI向邏輯請求顯示項目列表。 在這裏,用戶界面具有狀態並決定下一步要顯示的內容。該邏輯僅用於向用戶界面提供信息並處理用戶界面發送的信息。邏輯沒有狀態,只是做了UI告訴它做的事情。

我喜歡1,因爲UI是無狀態的,如果UI崩潰(而不是其在不同的進程中運行的邏輯),你可以重新啓動UI,並繼續在同一地點墜毀前。它使得用戶界面非常輕便和簡單。但是我想知道哪個更好: 將有關用戶在UI或邏輯中所做的事情置於狀態。

編輯:

我發現了一個document描述放在哪裏邏輯,但它主要是在邏輯和數據,而不是用戶界面。是否有描述邏輯和UI部分的類似文檔?

回答

1

我正在關注當前正在進行的項目的MVP類型的體系結構,我認爲它很棒。我的觀點不瞭解模型,並通過接口與主持人進行交流。從我的主持人中,我談到了一個服務層,然後與我的模型進行對話。我的觀點和我的模型完全不瞭解對方。視圖會將事件轉發給演示者,並根據演示者內部的邏輯公開演示者可以更新的屬性。

2

你在找什麼可能是MVC(en.wikipedia.org/wiki/MVC),據說,一個用戶界面(視圖)的組成和顯示應與商業規則分開,最終這些應該與數據本身分開。

+0

不,我想要n層,我不希望我的UI直接混淆我的數據。 – rve 2011-01-19 14:00:33

+0

什麼?是不是MVC多層? – PaoloVictor 2011-01-19 14:02:44

相關問題