Sorry,我没说清楚,我说的是为什么 GameFactory 不是 singleton 的问题.

我认为 GameFactory.getGameInstance() 不是 线程安全的方法.
不能保证在多线程的方式下得到正确的结果.

如果用 if(game==null) game = Class.forName.newInstance();
那么,只能返回一个 game 实例,我想,作者肯定不希望这样,
因为不同的 game 要服务于不同的应用.

所以 GameFactory.getGameInstance()应该写成static
这样又可以使用lazy方法,不必每次都动态类装载,这是很浪费性能的。

注意是每次返回一个实例,多次就能返回多个实例。

4a,factory实例一个就够了,game实例是根据传递的classname决定的,每调用一次工程方法返回一个实例