想象一下,您必須初始化一些在循環中無法處理的對象。在調用構造函數之前,您必須以提供的數據以某種方式初始化對象。最後你還想用另一種方法來使用這個對象。爲了便於閱讀和甚至計算,推薦方法A還是方法B?非循環初始化的代碼可讀性
方法A
DummyObject a = new DummyObject("fs", "y", 4);
a.init("aseas", true);
otherObjectA.addDummy(a);
DummyObject b = new DummyObject("qwe", "sd", 8);
b.init("a4rhs", true);
otherObjectA.addDummy(b);
DummyObject c = new DummyObject("j", "xe", 39);
c.init("as", false);
otherObjectB.addDummy(c);
DummyObject d = new DummyObject("qw", "k", 12);
d.init("sdfs", true);
otherObjectC.addDummy(d);
// and so on...
方法B
DummyObject a = new DummyObject("fs", "y", 4);
DummyObject b = new DummyObject("qwe", "sd", 8);
DummyObject c = new DummyObject("j", "xe", 39);
DummyObject d = new DummyObject("qw", "k", 12);
a.init("aseas", true);
b.init("a4rhs", true);
c.init("as", false);
d.init("sdfs", true);
otherObjectA.addDummy(b);
otherObjectB.addDummy(c);
otherObjectA.addDummy(a);
otherObjectC.addDummy(d);
// and so on...
和方法'C'也許可能是爲了減少冗餘代碼 – SomeJavaGuy
@KevinEsche真寫了一個方法,但可能導致需要大量參數的方法,這又會使代碼非常不可讀。 –
查找生成器模式,使其更具可讀性。此外,init()方法也爲我聞到了氣息。 – abbath