基本MVC-简单Java程序

基本MVC-简单Java程序,java,model-view-controller,user-interface,Java,Model View Controller,User Interface,我开始学习编程,我创建了一个简单的21点游戏机。现在我正在尝试使用swing/JFrame创建GUI,并决定同时尝试学习MVC的基础知识。我遇到了关于MVC的问题 我的问题是,在玩家点击“hit”后,该如何准确地通知视图更改了玩家的手牌 如果用户想要点击,hitBtn(在视图中)->actionListener()(在控制器中)->hit()(在模型中) - hit() would than modify the nessessary model classes (i.e. Dealt

我开始学习编程,我创建了一个简单的21点游戏机。现在我正在尝试使用swing/JFrame创建GUI,并决定同时尝试学习MVC的基础知识。我遇到了关于MVC的问题

我的问题是,在玩家点击“hit”后,该如何准确地通知视图更改了玩家的手牌

如果用户想要点击,
hitBtn(在视图中)->actionListener()(在控制器中)->hit()(在模型中)

 - hit() would than modify the nessessary model classes 
   (i.e. DealtCards, Deck, Cards objects)
视图应该如何知道模型已经更改,更基本地说,视图应该如何显示模型类中的数据,例如玩家的手?。在模型类中使用getter方法,还是从模型到控制器再到视图?(我的印象是,该视图不应提及该模型)


谢谢

用于通知视图模型更改:
1.
2.控制器可以充当视图和传播更改的模型之间的桥梁。
我不认为不从视图中引用模型总是不可接受的。如果您有一个清晰的模型类型界面,并且实际实现是隐藏的,那么视图可能会引用它。

另请看一看,虽然是SWT,但方法是独立于实现的。

关于通知视图模型更改的信息:
1.
2.控制器可以充当视图和传播更改的模型之间的桥梁。
我不认为不从视图中引用模型总是不可接受的。如果您有一个清晰的模型类型界面,并且实际实现是隐藏的,那么视图可能会引用它。

还要看一看,这是SWT,但方法是独立于实现的。

视图中没有对控制器的引用,控制器也没有对视图的引用。必须是这样才能让它工作。重要的是如何将引用传递给每个引用,以使它们松散耦合。我通常使用对接口和构造函数或setter注入的引用来执行绑定。有关此链接中控制反转的更多信息:

MVC的基本思想是:

  • 模型、视图和控制器的代码接口
  • 模型、视图和控制器的代码实现
  • 尽可能地将它们解耦

关于控制器的提示:我通常将ActionListeners和其他特定的GUI类放在视图实现中,然后从那里向控制器发送我自己的事件。这样,如果我想将应用程序移植到具有不同GUI的其他平台,我可以重用视图界面、控制器界面,可能还有控制器实现。唯一不经常重用的是视图实现和模型实现。

视图中没有对控制器的引用,控制器也没有对视图的引用。必须是这样才能让它工作。重要的是如何将引用传递给每个引用,以使它们松散耦合。我通常使用对接口和构造函数或setter注入的引用来执行绑定。有关此链接中控制反转的更多信息:

MVC的基本思想是:

  • 模型、视图和控制器的代码接口
  • 模型、视图和控制器的代码实现
  • 尽可能地将它们解耦
关于控制器的提示:我通常将ActionListeners和其他特定的GUI类放在视图实现中,然后从那里向控制器发送我自己的事件。这样,如果我想将应用程序移植到具有不同GUI的其他平台,我可以重用视图界面、控制器界面,可能还有控制器实现。唯一不经常重用的是视图实现和模型实现