在JAVA中应用MVC概念
你好 关于我的,为了适应所建议的MVC概念,我修改了我的代码并包括一个IO类,如下所示:在JAVA中应用MVC概念,java,Java,你好 关于我的,为了适应所建议的MVC概念,我修改了我的代码并包括一个IO类,如下所示: public class IO { public void output(String msg) { JOptionPane.showMessageDialog(null, msg); } public String input(String prompt) { return JOptionPane.sho
public class IO {
public void output(String msg) {
JOptionPane.showMessageDialog(null, msg);
}
public String input(String prompt) {
return JOptionPane.showInputDialog(prompt);
}
public int inputInt(String prompt) {
return Integer.parseInt(input(prompt));
}
}
public class GuessGame {
private int numberToGuess;
private ArrayList<Player> player;
private IO io = new IO ();
public void acceptPlayers(){
int num_players = io.inputInt("Enter number of players");
player = new ArrayList<Player>(num_players);
for (int i = 0; i < num_players; i++) {
player.add(new Player(io.input("Enter Player " + (i+1) + " Name: ")));
}
}
public void startGame() {
numberToGuess = (int) (Math.random() * 10);
while (true) {
for (Player curPlayer : player) {
if (curPlayer.guessNumber() == numberToGuess) {
declareWinner(curPlayer);
return;
}
io.output(curPlayer.getPlayerName() + "'s Guess is Wrong!");
}
}
}
private void declareWinner(Player player) {
io.output(player.getPlayerName() + " Wins!");
}
}
公共类IO{
公共无效输出(字符串msg){
showMessageDialog(null,msg);
}
公共字符串输入(字符串提示){
返回JOptionPane.showInputDialog(提示);
}
公共int输入(字符串提示){
返回Integer.parseInt(输入(提示));
}
}
公开课猜谜游戏{
私人整数猜测;
私人ArrayList播放器;
私有IO=新IO();
公众参与人(){
int num_players=io.inputInt(“输入玩家数量”);
player=新阵列列表(num_players);
对于(int i=0;i
这是正确的吗?如何改进代码?谢谢。在上述代码中,您不能将视图i.IO从图形界面更改为命令行界面。 如果将IO更改为一个接口,将一个类GraphicalIO更改为显示图形界面,将另一个类CommandLineIO更改为显示命令行界面,则可以充分利用OOP概念
同样对于MVC模式,如果您将生成视图和猜测游戏的IO作为模型和控制器,因为它具有逻辑和程序控制,它仍然没有完全分开。猜游戏与IO对象紧密耦合,而IO对象又与图形视图紧密耦合。IO类将在MVC模型中呈现您的视图 猜谜游戏类有很多责任,这个类是为你的模型和控制器,你必须分裂它 您可以创建一个游戏类,其状态为numberToGuess和ArrayList player; 对于addPlayer()和start()方法 然后,您可以拥有一个GameControlled类,该类的状态为IO类和一个Game类。
对于方法acceptPlayers(),*startGame()*,declareWinner(Player-Player)。看起来不错,但请记住,在java/c等语言中,视图和控制器角色都由GUI处理(因为这些语言提供了事件系统)