在Kent Beck的Implementation Patterns,人們可以閱讀使用一種方法與常量作爲參數與幾種方法
「的常量的一個常見用途是 通信在 的接口的消息的變化。例如,爲了中心 文字,你可以調用
setJustification(Justification.CENTERED)
。這種風格API的 一個優點是 ,你可以通過添加新 常數不破壞 實現者加 現有方法的新變種。然而,日對於每個變體,ese消息 不通信以及具有單獨的方法 。在 這種風格,上面的消息將是justifyCentered()
。一個界面, 的方法的所有調用具有 字面常量作爲參數傳遞,可以通過 給它獨立的方法 每個恆定值的提高。」
這是爲什麼呢?一般來說,當我編碼,我注意到我有幾個類似的參的方法,可以在下面的例子中可以減少到只有一個,有一個參數,比如,
void justifyRight()
void justifyLeft()
void justifyCentered()
我通常會做什麼肯特建議剛好相反,這將是將其分組爲
setJustification(Justification justification)
您通常如何處理這種情況?這是完全主觀的還是有非常強烈的理由,我不贊成肯特對此事的看法?
謝謝
可能是一個社區維基... – pascal 2010-07-24 08:37:03
我認爲它的老派編程,當你試圖通過代碼重複獲得更好的性能。之後,當您需要向邊界類(包括左側,右側,底部,頂部邊距的大小)添加另一個參數時,最終會出現大量代碼重複。 – IAdapter 2010-07-24 09:03:21
我不認爲它與表現有關(至少與本書/作者有關)。 – 2010-07-24 09:30:05