|
1
2
是的,你所做的有些道理。我发现让窗口听游戏比让窗口听游戏更直观。我还发现,如果将GUI的不同区域分开,并通过细粒度接口将游戏传递给每个区域,Java的可维护性会更好。我通常让GUI元素监听模型中的更改,并请求处理任何交互。这样可以简化单元测试,如果您没有一个像样的自动化套件,甚至仅仅是用于日志记录,那么您可以用一个伪的验收测试替换GUI。
通常拆分GUI会导致一些面板纯粹监听,而一些面板纯粹交互。这使得关注点的分离变得非常可爱。我用它们自己的类扩展来表示面板
例如,如果我有两个面板,其中一个显示结果,另一个有“更新”按钮,我可以定义两个界面:
然后,游戏控制器实现这两个接口,两个面板分别采用各自的接口。更新接口将有一个名为
不管你是让游戏监听窗口还是游戏的窗口,通过这种方式通过界面分离东西,你可以更容易地在以后分割游戏控制器并委派其职责,一旦事情开始变得 真正地 很复杂,他们总是这样! |
|
|
2
0
我认为您应该实现观察者设计模式(http://en.wikipedia.org/wiki/Observer_模式)不使用.NET的事件。在我的方法中,您需要定义几个接口并添加一些代码。对于每种不同的事件,创建一对对称接口
X表示事件的特定名称(Click、KeyPress、EndApplication、WhateverYouWant)。 然后使您的观察类实现IEventDispatcher,并使您的观察类实现IEventHandler
所有的代码都是手写的。我对Java没有什么经验,但我相信这种模式可能会帮助您! |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |