创建对象监听框架的最佳方法是什么?

时间:2014-07-20 23:14:29

标签: java object listener

请注意,此问题与我在本网站上看到的任何其他问题无关。我没有发现重复。

我正在研究我的3D游戏引擎的框架,但在进入渲染之前,我实现了对象侦听某些事件等实用程序。

我在考虑使用一个名为Listener的接口,并使用注释" Handler"添加任何方法,并且该方法与此类似:

@Handler
public void onPlayerDeath(PlayerDeathEvent event) {}

这看起来似乎接近Bukkit的事件处理,用于启用插件对事件执行某些操作。然后我可以使用这种框架来完成成就,任务完成等等。

我认为这是一种更好的方法,但这是我能想到的唯一方法。

如果有人能提供帮助,那就太棒了。感谢。

2 个答案:

答案 0 :(得分:3)

您可以使用自定义事件,如here所述,也可以使用Guava的EventBus

我更喜欢Guava的EventBus,因为它为如何处理事件提供了一个很好的抽象。您可以轻松地从同步切换到异步处理,而无需进行太多更改。

答案 1 :(得分:-1)

我认为工厂模式将是她选择的t。 (http://en.wikipedia.org/wiki/Factory_method_pattern

public class PlayerFactory {
    public static Player createPlayer(){
        //handle event
        return new Player();
    }
}

public class Player{
    private Player(){}
}