我在Java中开发了一个应用程序,我正在重构它。我刚刚意识到,我必须执行几乎同样的动作几种方法,它们具有相似的名称,以及:Java中的重构方法:我应该应用哪种模式?
RestrictedPersonServiceImpl.canViewPersonDetails
RestrictedPersonServiceImpl.isSubjectRestrictedToWorker
RestrictedPersonServiceImpl.isAnySubjectRestricted
RestrictedPersonServiceImpl.isSubjectRestricted
RestrictedPersonServiceImpl.isAnySubjectOfSubgroupRestrictedToWorker
我敢肯定,它必须是一种编程模式,适用于对付这种情况。我之前想到的解决方案是将所有这些方法合并为一个,并通过参数确定行为。
有没有更好的选择?
谢谢大家。
也许这个问题是CodeReview站点的一个很好的候选人:http://codereview.stackexchange.com/? – JFPicard
@JFPicard:这些只是方法名称,而不是实际的代码。整个问题似乎也是假设的。 – Jamal
我不明白巨大的'if'语句和带参数的单个方法是如何改进的。你仍然需要用通信方法名称来包装它。重构是否有意义取决于这些方法的实际*实现,这是我们看不到的。 –