gpt4 book ai didi

java - MVC模式;我的模型类需要用户输入,但我知道它不应该询问用户或 Controller

转载 作者:行者123 更新时间:2023-11-30 07:52:16 27 4
gpt4 key购买 nike

我正在使用 MVC 模式创建一个简单的二十一点游戏。

主 Controller 称为Game,主视图称为BlackjackView,我目前使用的实现是ConsoleView,主要模型类称为 Blackjack

这是一些我不明白如何实现下一部分的简化代码:

游戏.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 应该与询问用户某事或获取用户输入无关。

正如我正确理解的那样,我的 View 类必须显示问题(“玩家,你想击球还是停留?”)并且我的 Controller 类必须处理输入。

我想将对 Game 的引用传递给 Blackjack,这样我就可以要求它要求用户输入,但我知道我不应该这样做那个。

最佳答案

根据您向我们展示的内容,您实际上并未创建 Controller 或 View 。该模型不应该“向”任何人索取任何东西。这是一个选择和讲述的过程。

输入 View 告诉 Controller 提供了哪些输入。 Controller 选择模型实例,然后告诉模型要处理的输入。然后 Controller 选择下一个 View ,然后告诉 View 它使用的模型实例。然后 View 模型询问结果,并根据 View 逻辑格式化结果。该 View 然后等待输入或调用输入 View 来执行此操作。循环重复。

关于java - MVC模式;我的模型类需要用户输入,但我知道它不应该询问用户或 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46101843/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com