从静态方法调用所有实例的接口方法
我不知道如何做到这一点,或者如果有可能。基本上我正在写我自己的GUI系统,我想要一个界面来处理点击检测。 gui元素(GuiButton
等)都是GuiElement
的子文件夹。我想要的是能够静态调用GuiElement.onCLick(x,y)
,然后让该类的所有子类实例触发其覆盖的OnCLickListener
接口。从静态方法调用所有实例的接口方法
基本上我不想保留每个元素的参考,并通过它循环。
我假设你正在编写自己的GUI作为练习。
评论是正确的,你可能不想保留对GuiElement
的所有实例的引用,但你必须。除此之外,你可能不想有一个静态的电话GuiElement.onClick(x, y)
。像这样的静态调用是一种代码味道...甚至更多,你可能不想传播鼠标点击到所有GuiElement
,但只能到位于(x, y)
的GuiElements
。
你应该看看如何在Swing中定义MouseEvent
。即使Swing有一些缺点,它的大部分基本概念都是健全的。研究它的实施方式会给你一些正确的方向。编写自己的GUI层是一个非常好的练习,它是面向对象设计的一个非常好的操场,但是一些阅读会帮助你在这个方向上走很长的路。
或者他可以使用Swing,但在他的帖子中他说他正在“编写自己的gui系统..” – Dave 2014-09-12 21:42:23
你可能不想那样做,但这就是你必须要做的。 – 2014-09-12 21:21:25
不会工作,并且可能表明您需要重新设计您的应用程序。 – 2014-09-12 21:33:03
@Guillaume:不,不要鼓励链接发送!如果有相关的例子,OP应该将代码直接发布到他们的问题中。 – 2014-09-12 21:42:34