【发布时间】:2013-08-23 13:19:57
【问题描述】:
目前,我正在尝试为应用程序创建一个 mod。我试图通过在应用程序中放置“钩子”来使其尽可能动态。这些钩子将用于调用/创建我选择的任何设计(事件系统/方法调用)。我想知道哪一个更适合我的项目。如果您有任何其他“更好”的方法,请告诉我。
如果我进行方法调用,我会在超类中调用一个方法(这个超类是用于模组的,模组会扩展它)。 mod如果使用被调用的方法..将运行里面的代码。
如果我做一个基于反射的事件系统。我会创建一个对象(对象的创建将由钩子引起),mod(子类)会监听这个对象的创建... I.E
getEventManager().registerlistener(this)
@EventHandler
public void onCertainEvent(EventTick event){}
就“好”代码和效率而言,哪一个会更好?或者,如果您有其他方法。请告诉我。
【问题讨论】:
-
两者都不是。最好的选择是拥有一个模组可以实现的
interface。反射相对昂贵,只应在编译时不知道类型和方法签名的情况下使用。
标签: java events reflection methods