1

我正在为 java 设计一个敌人框架并与观察者一起工作。我想知道这是否可能 | 值得努力让一个类在 Java 中同时实现观察者和主题吗?

我想要一个实现主体和观察者的敌人界面,以便在看到玩家或敌人时,彼此一定距离内的敌人可以互相警告。

这里有更好的模式吗?

4

1 回答 1

1

我认为其中一种模式比观察者模式更适合使用,具体取决于您实际上希望如何实现您的框架:

主题/观察者的问题在于,当您的敌人移入/移出彼此的范围时,它们涉及注册/取消注册。

我建议隐式调用或事件驱动如下:

  • 每次敌人看到玩家时,都会生成一个“事件”,并广播给所有其他敌人。
  • 这个事件将有一个坐标来指定它是从哪里广播的。
  • 对于每个收到事件的敌人(就是所有的),查看坐标,看看它是否在自身的一定范围内
    • 如果没有,请忽略它(并假装它从未听说过)
    • 如果是这样,请按要求做一些事情。
于 2012-11-18T16:43:16.337 回答