目前我有這樣的代碼:好的做法/設計模式來解決嵌套的if else?
for (each item) {
if (item == 'x') {
print
}
if (item == 'y) {
print
}
}
現在,我有一個額外的要求 - 我想同樣的檢查,但不是印刷的,我需要在數據庫中插入。
即
for (each item) {
if (item == 'x') {
insertDB
}
if (item == 'y) {
insertDB
}
}
這重複的代碼,所以標誌來我的思想。
for (each item) {
if (item == 'x') {
if (insertDB) {
insertDB
} else {
print
}
}
if (item == 'y) {
if (insertDB) {
insertDB
} else {
print
}
}
}
這明顯導致了很多if-else混亂。我的面向對象編程告訴我一個新想法。
for (each item) {
if (item == 'x') {
obj.doItemXAction();
}
if (item == 'y) {
obj.doItemXAction();
}
}
Object obj = new PrintObj();
Object obj = new DBInsertObj();
代碼看起來乾淨多了。但是,考慮到我能想到的,任何人都可以指出我在這種情況下處理的確切設計模式?
看起來有點像'戰略模式'或至少是一個候選人.. http://www.tutorialspoint.com/design_pattern/strategy_pattern.htm –