【发布时间】:2018-10-28 14:42:28
【问题描述】:
我想尝试使用paintComponent制作一个示例交通灯程序,但我对它的MVC方法有点困惑,2个问题:
我用框架(视图)引擎(模型)和 JButton(控制器)制作了它,它们将打开/关闭灯。
对我来说,最简单的方法是让我的控制器直接与视图通信,通过调用 toggle(); (一种将布尔“活动”切换为真/假“的方法),在视图上,然后在视图上调用 repaint();。这个 repaint 方法将检查它是否处于活动状态,然后根据是否处于活动状态绘制不同的东西真假。
第一个问题是,MVC 标准可以接受吗?我会说是的,因为它只是在绘图,但是我认为视图方法中不应该有计算,检查“活动”是否考虑了计算?
更好的解决方案是在模型中创建一个方法,然后可以在视图上调用 toggle() 方法,因为它在技术上会更改数据?还是直接从控制器更改它更好。在较小的场景中当然更容易,但我可以看到它是否会在较大的解决方案中造成混淆。
不确定这个问题是否足够清楚,请告诉我,我会尝试提供更多信息。
【问题讨论】:
标签: java swing model-view-controller