2014-03-26 50 views
1

首先,我想先說明我想要完成的基本想法。對於基於mvc的分佈式系統,我應該使用哪種設計模式或想法

我正在設計一個系統,遵循分層模型視圖控制器設計。我基本上有一臺服務器,我想使用平板電腦作爲視圖/顯示器。現在,因爲我想通過序列化向平板電腦發送數據和從平板電腦發送數據,所以我無法弄清楚爲這些平板電腦播放視圖控制器類的位置。

理想情況下,當您啓動平板電腦時,您可以選擇希望平板電腦顯示哪個視圖(1通過任何方式),但視圖無法實例化自己的控制器我不認爲。

所以我只是不知道在哪裏有技術上創建所述視圖的視圖控制器以及如何允許它與所述平板電腦進行通信。 (這將在java/android中完成)

回答

1

MVC模式適用於一臺機器。所以你可以在平板電腦上使用MVC模式。這裏的控制器是一種粘合代碼,它實例化視圖並創建模型(DAO - 數據訪問對象)以從服務器獲取數據。

這與您將在服務器上使用的內容完全無關。你可以說在服務器上你也想有類似MVC的東西 - 在這種情況下,控制器處理REST,SOAP,...請求並實例化一個DAO,它將從文件,數據庫中檢索信息。 ..之後的視圖可以被看作是一個序列化器,它從獲取的數據中創建XML或JSON文檔。

您可能更想問問自己的是,如果您想擁有豐富或瘦客戶端。富客戶端擁有更多獨立的邏輯,可以緩存數據,...;而瘦客戶端僅顯示數據並將每個執行的操作轉發給服務器。

+0

是的,這清除了一切,謝謝。目前,我正在通過使用單獨的框架來「模擬」平板電腦窗口,這樣就爲我混淆了適當的結構。 假設我想要一個瘦客戶端,只顯示數據併發送操作執行的東西,我本質上會有一個控制器類在服務器上處理所有傳入的平板電腦,或者生成一個新的控制器,因爲每個平板電腦連接,或完全獨立控制器用於平板電腦當前顯示的任何特定屏幕?或者是否有單個控制器爲每個平板電腦創建單獨的DAO? – NeoMime

+0

控制器封裝邏輯。因此,您希望爲系統的不同部分安裝不同的控制器,但每個用戶/客戶端都將訪問所有這些控制器。然而,你可能不會有相同的實例,只是相同的類型([實例和對象之間有什麼區別?](http://stackoverflow.com/questions/2885385/what-is-the-difference實例與對象之間)關於實例VS對象的更多信息) – peter

+0

哈哈,當然。我相信你幫助我瞭解現在該做什麼,謝謝! – NeoMime

1

其實我認爲你在混合兩個不同的概念,這些概念很好地結合在一起,但仍然不同。 MVC pattern是用於實現用戶界面的模式,並且僅用作非常小的項目上的體系結構模式。另一方面,layered architecture可用於服務器端來實現更復雜的應用程序。

由於與MVC模式類比很容易的着名3層架構(表示層 - 應用層 - 數據層),這兩者往往是混合的(查看=表示層/控制器=應用層/模型=數據層)false

關於您的問題,請特別參閱zahorak關於瘦客戶機/胖客戶機的選擇。

+0

我很感激你清理那個。我確實有一個基於另一個的想法,但現在你已經澄清了整個「用於小事情的MVC」並且基本上是單一平臺特定的,現在它變得更有意義,所以非常感謝。 – NeoMime

相關問題