假设您有一个名为Explosion的类,在创建它的实例时没有意义,而没有来自另一个类实例的某些信息。构造函数不公开。根据Java中另一个对象的状态创建一个对象
是更好地做这种方式:
// both classes are in the same package
Explosion e;
Collision c = new Collision()
// do some stuff with collision
e = c.createExplosion()
或者是爆炸最好有一个静态方法来创建一个实例,你在一个碰撞对象作为参数传递:
Explosion e
Collision c = new Collision()
// do some stuff with collision
e = Explosion.createExplosion(c)
当你是这两个类的作者。
当我为简单的单元测试进行设计时,我最终选择了最喜欢的解决方案。静态方法和'新'运算符指出特定的类并使模拟实现变得困难。 – Christian 2010-01-23 16:20:31