2013-11-15 45 views
1

我正在用gui控制檯進行文本冒險。我現在安裝了它,以便用戶使用視圖輸入文本(例如「檢查鍵」,「環視」等)。然後使用偵聽器,然後將此數據從視圖發送到控制器。一旦文本發送給控制器,我有點卡住了。在MVC模型之後,我應該將文本從控制器發送到模型,並讓模型解析它並找出如何處理它,或者模型應該是控制器分析數據時的一種「存儲」 ,只是告訴模型的基本命令?例如,如果「拾取鑰匙」被髮送給控制器,控制器是否應告訴模型簡單地將鑰匙添加到玩家庫存中並將其從房間中移除,或者是否應該將整個文本發送給要處理的模型?我知道這是一個非常基本的MVC問題,即使在閱讀了一些關於它的內容並查看解釋該模型的流程圖之後,我對MVC的每個部分的具體角色都感到困惑不解。MVC - 控制器與模型職責

+1

該模型應該有程序的大腦。試着去思考這個程序不變的是它是一個基於文本的遊戲,一個Swing GUI,一個智能手機遊戲,一個基於互聯網的遊戲。對於所有這些情況,哪一個都不會改變,這可能在模型中。 –

+0

@HovercraftFullOfEels所以控制器只是傳遞模型和視圖之間的數據,但從來沒有真正觸及數據?它們之間只有一層,允許每個單獨進行測試和/或使擴展更容易? – user2249516

+0

嗯,它取決於,有時模型不能做所有的事情,例如,如果一個行動取決於一箇舊行動,我相信類行動不能擁有所有的邏輯,或者如果一個行動取決於一個行動在另一位玩家的網絡上:網絡代碼不會在模型中。 – zenbeni

回答

-3

該模型是持久性存儲即數據庫。 控制器進程從用戶到模型的信息 該視圖顯示從模型到用戶的信息並接受來自用戶的輸入。

+2

模型不一定是持久的。 – Shoe

+0

我應該對元素進行非常基本的描述。誠然,模型不一定是持久的,我也沒有包含任何關於視圖模型的內容。只是對MVC部分的一個非常基本的解釋 – user2949011

+0

請在開始「回答」問題之前瞭解一些有關該主題的內容。 –

0

有很多方法可以回答這個問題。 這個答案可能不符合標準,它只是我的理解。

我認爲創建一個模型,代表一個實體以及操作。然後將控制器或調用作爲請求處理程序接受請求以及數據,然後決定在模型中使用哪些操作來成功處理請求。

由於數據管理是模型的責任,因此您可以擁有另一個層來處理存儲並將其與模型一起使用,或者在模型本身中處理存儲。