【发布时间】:2018-02-16 12:23:27
【问题描述】:
我正在使用 MVC 模式创建一个简单的二十一点游戏。
主控制器叫Game,主视图叫BlackjackView,我目前使用的实现是ConsoleView,主模型类叫Blackjack。
这是一些我不明白如何实现下一部分的简化代码:
Game.java
public class Game {
private Blackjack blackjack;
private BlackjackView view;
public static void main(String[] args) {
Game game = new Game();
game.start();
}
private void start() {
blackjack = Blackjack.initializeGame();
view = new ConsoleView(blackjack);
blackjack.takeTurns();
}
}
二十一点.java
import java.util.*;
public class Blackjack {
private List<Person> players = new ArrayList<Person>();
public static Blackjack initializeGame() {
return new Blackjack();
}
public void takeTurns() {
for (Person player : players) {
// ask player to 'hit' or 'stay'
}
}
}
我无法理解如何做到这一点,因为Blackjack 应该与询问用户或获取用户输入无关。
我的理解正确,我的视图类必须显示问题('玩家,你想打还是留下?')并且我的控制器类必须处理输入。
我想将Game 的引用传递给Blackjack,所以我可以要求它要求用户输入,但我知道我不应该这样做。
【问题讨论】:
-
为什么不将视图传递给二十一点,以便它可以要求视图从用户那里获取输入?
-
模型不应该对视图有任何了解。
标签: java oop model-view-controller