基于Java中另一个对象的状态创建对象

Sta*_*lly 5 java

假设你有一个名为Explosion的类,在没有来自另一个类实例的某些信息的情况下创建它的实例是没有意义的.构造函数未公开.

以这种方式做得更好:

// both classes are in the same package  
Explosion e;  
Collision c = new Collision()    
// do some stuff with collision  
e = c.createExplosion()
Run Code Online (Sandbox Code Playgroud)

或者,对于Explosion来说,使用静态方法创建实例并将Collision对象作为参数传递是更好的方法:

Explosion e  
Collision c = new Collision()    
// do some stuff with collision  
e = Explosion.createExplosion(c)
Run Code Online (Sandbox Code Playgroud)

当你是这两个班的作者.

nan*_*nda 1

我当然更喜欢第二个,因为那是面向对象的。