我经常遇到需要编写如下代码的情况任何设计模式都可以巧妙地做到这一点,而无需大量的 IF 语句 -
A obj = new A();
B obj2 = new B();
for ( i = 1 ; i < 20 ; i ++ ) {
if( i == 1 )
obj.setField1(obj2.getOption1())
else if ( i == 2 )
obj.setField1(obj2.getOption2())
else if ( i == 3 )
obj.setField1(obj2.getOption3())
And so on.. for 20 times ..
obj.setField2(obj2.getNonOptionField2());
obj.setField3(obj2.getNonOptionField3())
}
编辑 -
这里循环的类比是我在数据库上循环,每条记录在其他表中创建 20 多条记录。在 20 条记录中,除了我添加条件的那一列之外,大多数列都是相同的。
是的,设计不是最好的,但我别无选择。