是否有可能在每行之前沒有if (condition)
的情況下檢查語句塊的每一行的條件是否爲真?在沒有多個IF語句的每行代碼之前檢查條件?
例如:
if (condition)
{
DoSomething();
DoSomethingElse();
DoAnotherThing();
}
在一些點另一個後臺進程可以DoSomethingElse()
之前設置condition
到假已經被執行。從本質上講,我找話說的效率和更簡便的方法:
if (condition) DoSomething();
if (condition) DoSomethingElse();
if (condition) DoAnotherThing();
在現實中它是一個代碼塊長,執行一次,我想如果在任何時候的特定標誌改變放棄。
什麼是收緊這種代碼的最好辦法。
多態性。創建表示實體DoSomething(),DoSomethingElse()和DoAnotherThing()的類。然後調用myclass1.doThing(); myclass2.doThing()和myclass3.doThing()。在這些方法中,重定向到檢查條件的單個方法,然後運行相應的函數。 http://sourcemaking.com/refactoring/replace-conditional-with-polymorphism –
If,否則IF,否則If,否則...? – JsonStatham