我在Java中開發了一個應用程序,我正在重構它。我剛剛意識到,我必須執行幾乎同樣的動作幾種方法,它們具有相似的名稱,以及:Java中的重構方法:我應該應用哪種模式?
RestrictedPersonServiceImpl.canViewPersonDetails
RestrictedPersonServiceImpl.isSubjectRestrictedToWorker
RestrictedPersonServiceImpl.isAnySubjectRestricted
RestrictedPersonServiceImpl.isSubjectRestricted
RestrictedPersonServiceImpl.isAnySubjectOfSubgroupRestrictedToWorker
我敢肯定,它必須是一種編程模式,適用於對付這種情況。我之前想到的解決方案是將所有這些方法合併爲一個,並通過參數確定行爲。
有沒有更好的選擇?
謝謝大家。
也許這個問題是CodeReview站點的一個很好的候選人:http://codereview.stackexchange.com/? – JFPicard
@JFPicard:這些只是方法名稱,而不是實際的代碼。整個問題似乎也是假設的。 – Jamal
我不明白巨大的'if'語句和帶參數的單個方法是如何改進的。你仍然需要用通信方法名稱來包裝它。重構是否有意義取決於這些方法的實際*實現,這是我們看不到的。 –