java将公共方法的实现放在私有方法中如何防止中断使用者?
这个问题源于几个相关的问题,并在某种程度上重新探讨了第一个似乎对OP的主要问题没有明确答案的问题:
- Private Methods Over Public Methods
- Why hide a class implementation?
- https://softwareengineering.stackexchange.com/questions/132019/what-is-the-value-in-hiding-the-details-through-abstractions-isnt-there-value
我非常清楚地理解私有方法的用途,但是我很难想到一个例子,在私有方法中实现函数不会给API使用者带来问题,但是将实现直接放在公共方法中会带来问题。这是Java API中的常见做法
我基本上是在问上面的第一个问题,因为我没有读到一个巩固我理解的答案。以同样的例子:
public class Sum {
private int sum(int a, int b){
return a + b;
}
public int getSum(int a, int b){
return sum(a, b);
}
}
使用私有求和函数而不是将结果直接放入公共函数有什么好处
public int getSum(int a, int b) {
return a + b;
}
也许这不是最好的例子,但我也非常欢迎更复杂或真实的例子
同样,我理解将实现放在私有方法中会隐藏实现,并允许重用,总体而言,对于将来的添加是一种更好的做法。但是,
- 而不是在私有方法中使用它如何能够扰乱API的消费者李>
- 所有的公共方法都应该以这种方式创建(总是将实现放在私有方法中),还是在哪里画线李>
# 1 楼答案
如您所示,将实现放在私有方法中并没有任何区别
我相信这个问题误解了“方法的接口<;->;实现”与“公共方法<;->;私有方法”之间的关系
重要的是将接口与实现分离。消费者只看到界面。函数提供程序选择/注入适当的实现