2011-12-28 30 views
3

如何重構包含許多ifs的下面的代碼,並且每個塊都包含不同的場景。重構ifs

if(condition1) 
{ 
    ConfigCondition1(); 
    GetSetCondition1Results(); 
} 
if(condition2) 
{ 
    ConfigCondition2(); 
    GetSetCondition2Results(); 
} 
if(condition3) 
{ 
    ConfigCondition3(); 
    GetSetCondition3Results(); 
} 
+0

爲什麼要重構它? 我可能會使用switch語句 – 2011-12-28 09:56:06

+0

爲什麼你想重構它,並以哪種方式?我現在的答案將是用例(但是,這不會幫助我很多) – Moonlight 2011-12-28 09:57:31

+0

多態可能是答案,但我們不知道你在做什麼,你試圖達到什麼目的。這段代碼的部分內容是什麼? – Oded 2011-12-28 09:59:40

回答

2

Strategy pattern似乎最適合您的問題。

使用策略模式,客戶端可以從一組實現的算法中選擇在運行時執行哪種算法。

0

請遵循此準則。

  • 是否所有if語句與相同的值比較?如果是,請使用switch區塊
  • 是否有一個if區塊排除其他?如果是,請使用else if
  • 一個塊是否取決於另一個塊的值?如果是,將它們嵌套在另一個裏面。
  • 如果以上都不是,則必須檢查所有塊,而不必進行更多優化。