你如何从类的所有实例中调用方法?

6 java android opengl-es

我正在编写一个基本的游戏引擎并且有一个抽象类来表示可以在3D世界中绘制的任何对象,但是在这个类中是一个抽象方法Render()我想在每个绘制阶段由引擎自动调用.我怎么能实现这个,以便从我的抽象类扩展的每个类都会自动调用Render()?

我正在使用java,android sdk 2.2和opengl es.

Col*_*ert 5

您可以将可以呈现的每个对象注册到将在所有对象上调用render()的类.

例如 :

public class Registry{
    private static Collection<RenderedObject> register = new ArrayList<RenderedObject>();

    public static void add(RenderedObject obj){
        register.add(obj);
    }

    public static void renderAll(){
        for(RenderedObject obj : register){
            obj.render();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

您可以在RenderedObject的构造函数中将对象注册到注册表中.

  • 静态变量是一个非常糟糕的想法*在Android上使用. (3认同)