我知道应该通过条件来分解方法,并为每个子类实现接口,但我不知道客户端类如何使用它,你能给我简单的样本吗?如何通过OOP传输ifelse代码段?
public void buildInfoItemUpdater() {
for (int i = 0; i < this.projectInfoInputItemUpdaters.size(); i++) {
if (this.projectInfoInputItemUpdaters.get(i) instanceof ComboBoxUpdater) {
ComboBoxUpdater tempItem = (ComboBoxUpdater) this.projectInfoInputItemUpdaters.get(i);
projectInfoInputItemUpdaters.get(i).setAnswer(tempItem.getUserAnswer());
} else if (this.projectInfoInputItemUpdaters.get(i) instanceof TextBoxUpdater) {
TextBoxUpdater tempItem = (TextBoxUpdater) this.projectInfoInputItemUpdaters.get(i);
projectInfoInputItemUpdaters.get(i).setAnswer(tempItem.getUserAnswer());
} else if (this.projectInfoInputItemUpdaters.get(i) instanceof TextFieldUpdater) {
TextFieldUpdater tempItem = (TextFieldUpdater) this.projectInfoInputItemUpdaters.get(i);
projectInfoInputItemUpdaters.get(i).setAnswer(tempItem.getUserAnswer());
}
}
}
在此先感谢您。
* Updater类是如何定义的?他们有共同的基础班吗?你可以将getUserAnswer方法添加到该基类吗? – SirPentor
这个问题可能更适合codereview.stackexchange.com – Brady
@SirPentor,很好的建议,我一直在思考。我在答案中添加了一个代码示例。 – Brady