一个类可以实现观察者设计模式的主题和观察者部分吗?

时间:2012-11-18 16:16:00

标签: java observer-pattern

我正在为java设计敌人框架并使用observer。我想知道是否有可能值得努力让一个类在java中实现观察者和主题吗?

我希望有一个敌人界面来实现主体和观察者,以便在看到玩家或敌人的情况下,彼此相距一定距离内的敌人可以相互提醒。

这里有更好的模式吗?

1 个答案:

答案 0 :(得分:1)

我认为其中一个比观察者模式更适合使用,具体取决于你想要如何实现你的框架:

主题/观察者的问题在于,当敌人进入/离开彼此的范围时,他们涉及注册/注销。

我建议使用隐式调用或事件驱动,如下所示:

  • 每当敌人瞄准一名玩家时,就会产生一个“事件”,向所有其他敌人广播。
  • 此事件将有一个坐标,用于指定广播的位置。
  • 对于接收事件的每个敌人(全部都是),查看坐标并查看它是否在自身的某个范围内
    • 如果没有,请忽略它(并假装好像从未听过它)
    • 如果是,请按要求做一些事情。