目录

我的学习分享

记录精彩的程序人生

对象不在构造函数中初始化而是使用单独的初始化函数

请看下面的代码:

package com.packtpub.libgdx.canyonbunny.game;

public class WorldController {
        private static final String TAG = WorldController.class.getName();

        public WorldController () { }

        private void init () { }

        public void update (float deltaTime) { }
}

WorldController类有一个内部的init()方法用于初始化对象。我们知道,所有的初始化代码也可以放到构造函数中。然而,在很多情况下,初始化代码位于一个单独的函数中也很有意义。无论何时我们需要在游戏中重置一个对象的时候,我们不要完全重建这个对象,这样就可以提高性能。这种实现还可以极大的降低被垃圾回收期中断的概率。我们尝试重用现有的对象,这样可以达到最大性能和最小内存占用的设计目标。这一点对于安卓这种有效资源的只能手机尤其重要。


好吧,翻译的确实够生硬的,意思应该都理解。之前遇到类似的代码都没有深入思考过为什么这样设计,这里给出了一种答案。顺便说一些,这段内容来自于《Learning LibGDX Game Development 2nd Edition》,需要的可以到libgdx资源这个帖子里看看。