我有兩個類:GUI
和Game
,它們分別處理GUI邏輯和遊戲邏輯。我應該在遊戲中製作一個GUI實例嗎?
我應該在Game
或的GUI
中做GUI
的實例。
如果它有什麼區別:它是Java。
一些更多的解釋:
我做生活克隆的遊戲在Java中,但我運行與更新我的GUI的一些問題。在繼續解決這些問題之前,我想知道使用GUI的正確方法。
我有兩個類:GUI
和Game
,它們分別處理GUI邏輯和遊戲邏輯。我應該在遊戲中製作一個GUI實例嗎?
我應該在Game
或的GUI
中做GUI
的實例。
如果它有什麼區別:它是Java。
一些更多的解釋:
我做生活克隆的遊戲在Java中,但我運行與更新我的GUI的一些問題。在繼續解決這些問題之前,我想知道使用GUI的正確方法。
也沒有。
我建議你打造繼Model-View-Controller成語您的應用程序。
遊戲狀態(模型)和它的(視圖)的視覺表示應該不依賴於彼此。兩者都應由控制器(或多個控制器)創建和操縱。
此應用程序設計的優點是你可以很容易地改變的部件之一(甚至完全替代它們),而不需要接觸其他。
所以基本上,我需要第三類(我的主程序)那些實例我的遊戲和GUI類?然後我的主程序可以將命令分派給其他兩個類? –
那就是我以爲也:-) –
@Simon Verbeke:的確如此。在這種情況下,您的主程序將是控制器。 – Philipp
通常,您可以將您的應用程序視爲分層。 UI層可以被假定爲在應用層「之上」。關於依賴性,這是間接的,所以UI
可以依賴於Game
,機器人不是相反。
你可以這樣想起來了 - 「什麼?部分,我應該能夠更改,恕不迫使對方一個改變一樣。」我的猜測是,您希望能夠在不更改Game
的情況下更改UI
。相反,這種方式意義不大。所以結果將是UI
應取決於Game
幷包含對它的引用。
編輯:相對於MVC架構。使用MVC並不意味着視圖可能只通過控制器從模型中檢索它的值。這些值應該使用控制器進行更改,但視圖通常仍然會引用模型來顯示它。控制器通常對模型顯示沒有附加價值。
你期望人們從你的班級名字中推斷出來嗎? – Juvanis
@ivanovic是的,他認爲我們是那麼好:)但如果它是一個鞦韆貴一步前進記住,如果你暫停你的邏輯,並且你的GUI沒有在線程中運行,它也將停止。 – fatfredyy
看看這個,http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller – SomeJavaGuy