Diciamo che esiste una classe chiamata Explosion in cui non ha senso creare un'istanza di esso, senza alcune informazioni da un'altra istanza di classe. Il costruttore non è reso pubblico.Creazione di un oggetto in base allo stato di un altro oggetto in Java
è meglio fare in questo modo:
// both classes are in the same package
Explosion e;
Collision c = new Collision()
// do some stuff with collision
e = c.createExplosion()
o è meglio per esplosione di avere un metodo statico per la creazione di un'istanza e si passa in un oggetto di collisione come argomento:
Explosion e
Collision c = new Collision()
// do some stuff with collision
e = Explosion.createExplosion(c)
Quando sei l'autore di entrambe le classi.
Finisco con le soluzioni che mi piacciono di più quando progetto per un facile collaudo unitario. I metodi statici e gli operatori "nuovi" indicano classi specifiche e rendono difficili le implementazioni simulate. – Christian