2012-10-19 81 views
-3

我正在創建一個用於顯示自動迷宮解算器的模擬,其中沒有用戶輸入。MVC架構 - 在哪裏放置邏輯?

的MVC架構的使用和用Java實現。視圖是通過控制器從模型接收和繪製數據。

既然這樣,我也可以更新模型的邏輯,進而更新視圖兩種選擇:

  • 控制器實現Runnable
  • 控制器創建一個線程:

    Thread runControl = new Thread(this); 
    runControl.start(); 
    
  • 然後

    線程可以執行在控制器運行(),該更新模型邏輯和通過新的數據傳遞給查看

這不是我的首選方法,但是,我寧願有示範運行其自己的邏輯。我寧願:

  • 模式實現Runnable
  • 模型包含在run()中所有的邏輯
  • 控制器模型創建一個線程,並執行模型

我在此丟失點。然後模型可以相應地更新自己的邏輯,但是在模型線程運行時,如何通知模型數據的變化,然後檢索該數據(仍在被操縱/更新),然後通知視圖?

回答

1

控制器和視圖緊密地綁在一起。前者是服務器端,後者是客戶端。

我覺得MVC需要看起來像這樣的更新:

View->Controller->Service->Persistence 

這些是層。模型在層之間運行。

服務實現用例。他們是放置業務邏輯的適當場所。當然,Model對象應該知道如何管理自己的狀態,但編組Model和Persistence對象來完成用例屬於Service。你需要超越模型的東西,因爲模型可能不知道它們被使用的所有上下文。

控制器接受,驗證和結合的請求;它確定完成請求所需的服務;它序列化響應並確定下一個視圖。

服務知道用例和工作單位。

+0

感興趣的話題 – mKorbel

相關問題