我想创建一个既可以在本地也可以在线工作的游戏.
我的第一个想法是创建一个接口,该接口将具有GUI为业务逻辑所需的所有方法,然后具有网络实现和本地实现.
这适用于请求 - 响应消息.但是,服务器发送的消息呢,我必须更新一些GUI组件(即JLabel)?
我的第一个解决方案是实现监听器,其中实现中的每个更改都将触发事件.GUI将适当地注册和更改它的组件.但是,在业务逻辑中调用触发事件看起来有点不对劲.
我是在正确的轨道吗?因为我想我不是.有什么建议?
谢谢.
注意:客户端是一个简单的Java Swing GUI.
你所描述的将有助于保持模型独立于演示问题,这是一件好事.这也可以帮助您在模型的设计,开发和维护过程中,因为您可以在模型中的某些更改应该触发特定事件的基础上编写单元测试,而不必担心屏幕上可能出现的情况.
当然,它可以让您从不同的环境中获得不同的GUI设计.
关键是事件应该是关于模型状态的变化,而不是关于表示级别的预期动作/表示.让表示层处理是否/如何响应模型事件.