假設您有一個名爲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