java - 基本 MVC - 简单 Java 程序

标签 java model-view-controller user-interface

我开始学习编程,并创建了一个简单的二十一点控制台游戏。现在我正在尝试使用 swing/JFrame 创建一个 GUI,并决定同时尝试学习 MVC 基础知识。我遇到了这个java / gwt UI coding - clean code关于MVC

我的问题是,在玩家击中“击中”后,应如何准确地向 View 通知玩家手牌的变化。

如果用户想要点击,hitBtn(在 VIEW 中) -> actionListener()(在 CONTROLLER 中) -> hit()(在 MODEL 中)

 - hit() would than modify the nessessary model classes 
   (i.e. DealtCards, Deck, Cards objects)

View 应该如何知道模型已更改,更基本的是 View 应该如何显示模型类中的数据,例如玩家的手?。在模型类中使用 getter 方法或从模型到 Controller 再到 View 的传递? (我的印象是 View 不应该对模型有任何引用)

谢谢!

最佳答案

用于通知 View 有关模型更改的信息:
1.PropertyChangeListener
2. Controller 可以充当 View 和模型之间传播更改的桥梁。
我不认为不从 View 引用模型总是 Not Acceptable 。如果模型类型有清晰的接口(interface)并且隐藏了实际的实现,则 View 可以引用它。
另请查看data binding ,虽然是 SWT,但该方法是独立于实现的。

关于java - 基本 MVC - 简单 Java 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8586233/

相关文章:

java - Button OnClick 中 SharedPreferences 的 NullPointerException

java - antlr4 Java获取标记图?

java - Struts 2操作方法和struts.convention.result.path不起作用

java - 自定义类中的变量总是打印 0

java - Play Framework 错误: not found: value message

php - 无效的表单提交 - 如何处理它们?

jquery - 主干路由器不会触发事件

c# - 如何制作像 Popcorn Time 这样的 GUI?

linux - 从用户空间的程序调用内核模块函数

javascript - 所有输入字段的总数不是正确答案