自定义构造函数作为一种简单方法

时间:2013-04-02 00:32:40

标签: java android

我有一个名为Screen的班级。每次我想在我的应用程序中设置一个新的屏幕时,我都会调用以下方法:

public void setScreen(Screen screen) {
        if(this.screen != null) {
            this.screen.pause();
            this.screen.onDispose();

        }
        this.getGraphics().drawColor(Color.BLACK); // Clear virtual framebuffer
        this.screen = screen;
        this.screen.load();
        this.screen.resume(); 
        WSLog.e(Game.GAME_ENGINE_TAG, this, "New Screen has been created");
}

现在我的问题是:是否允许用load方法替换构造函数的函数?

我这样做,因为在设置新屏幕时,必须首先处理当前的屏幕,然后才能加载新屏幕,但是如果我在构造函数中完成所有加载,那么新屏幕将初始化首先,然后当前的一个将被放弃(这是不理想的)。

2 个答案:

答案 0 :(得分:0)

它完全有效,你根本不替换构造函数。 constructor的主要作用是初始化将对象置于有效状态以供使用的变量。但是,这并不意味着对象必须立即履行其所有责任。假设您设计了一个Engine类。调用它的构造函数并不一定意味着立即启动引擎。使用start方法在创建对象实例后启动引擎没有任何问题。

答案 1 :(得分:0)

绝对是允许的。
在C#中使用Window Forms时,有一个名为InitializeComponents()的方法,用于设置表单的所有对象和事件。您的方案是有效的,因为正如您所说,有时您不想这样做。

构造函数用于初始化变量和/或至少分配空间。不要害怕将更多的代码放入其他方法中,特别是如果您可以设想不希望使用一段代码的时间。它使您的程序更加灵活。

祝你好运:)