2012-11-23 102 views
0

我有兩個類:GUIGame,它們分別處理GUI邏輯和遊戲邏輯。我應該在遊戲中製作一個GUI實例嗎?

我應該在Game或的GUI中做GUI的實例。

如果它有什麼區別:它是Java。

一些更多的解釋:

我做生活克隆的遊戲在Java中,但我運行與更新我的GUI的一些問題。在繼續解決這些問題之前,我想知道使用GUI的正確方法。

+0

你期望人們從你的班級名字中推斷出來嗎? – Juvanis

+0

@ivanovic是的,他認爲我們是那麼好:)但如果它是一個鞦韆貴一步前進記住,如果你暫停你的邏輯,並且你的GUI沒有在線程中運行,它也將停止。 – fatfredyy

+0

看看這個,http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller – SomeJavaGuy

回答

4

也沒有。

我建議你打造繼Model-View-Controller成語您的應用程序。

遊戲狀態(模型)和它的(視圖)的視覺表示應該不依賴於彼此。兩者都應由控制器(或多個控制器)創建和操縱。

此應用程序設計的優點是你可以很容易地改變的部件之一(甚至完全替代它們),而不需要接觸其他。

+1

所以基本上,我需要第三類(我的主程序)那些實例我的遊戲和GUI類?然後我的主程序可以將命令分派給其他兩個類? –

+0

那就是我以爲也:-) –

+0

@Simon Verbeke:的確如此。在這種情況下,您的主程序將是控制器。 – Philipp

3

通常,您可以將您的應用程序視爲分層。 UI層可以被假定爲在應用層「之上」。關於依賴性,這是間接的,所以UI可以依賴於Game,機器人不是相反。

你可以這樣想起來了 - 「什麼?部分,我應該能夠更改,恕不迫使對方一個改變一樣。」我的猜測是,您希望能夠在不更改Game的情況下更改UI。相反,這種方式意義不大。所以結果將是UI應取決於Game幷包含對它的引用。

編輯:相對於MVC架構。使用MVC並不意味着視圖可能只通過控制器從模型中檢索它的值。這些值應該使用控制器進行更改,但視圖通常仍然會引用模型來顯示它。控制器通常對模型顯示沒有附加價值。

相關問題