假设我有一个公共方法,如下所示:
public void startService(int intParam1, int intParam2, boolean booleanParam) {
setupService(intParam1, intParam2, booleanParam); // call private method to perform prerequisites
// perform remaining logic to start service here
}
此方法在同一个类中调用私有方法,该方法与调用它的公共方法具有相同的接口。公共 startService()方法是私有 setupService()方法的唯一使用者。
仅仅摆脱私有的 setupService()方法调用并将其替换为 setupService()的实现更好吗?在这种情况下,似乎有一些冗余可能是不必要的,但我想得到一些专业意见。在我的职业生涯中,我已经多次遇到这种情况,但通常会因为害怕破坏而反过来。
答案 0 :(得分:1)
我也经常遇到这种情况。
我问自己:
私有函数是否做了太多可以进一步分解为函数的东西?如果是这样,那么我宁愿摆脱单个私有函数并从公共函数中调用较小的函数。这使得代码更具可读性,因为您可以立即查看公共方法正在执行的操作。这也很适合使代码自我记录。
是否有可能再次使用单个私有函数的未来用例?如果没有,那么此刻不需要私有。但是,如果公共函数中的部分代码必须由其他函数使用(在转换期间进行更多测试),将来可能会变得困难。
总而言之,它归结为在您的功能中具有最佳模块性。如果私有函数不能进一步细分为独立函数,那么我只需要将其删除并将其代码放在公共方法中。