我正在检查StringTokenizer.java类,并提出了一些问题。
我注意到被其他类使用的公共方法调用了一些私有方法,它完成了所有的工作。现在,我知道OOD的原则之一就是尽可能多地隐藏所有的实现细节。我不知道我完全明白这个背后的逻辑。
我明白,为了防止存储在其中的无效值(仅仅是很多原因之一),将字段设置为私有重要性。但是,当涉及到私有方法时,我不知道为什么它们同样重要。
例如,在StringTokenizer类的情况下,我们不能把所有的实现代码放在公共方法中?对于使用这些方法的类来说,如何使用这些方法有所不同,因为这些方法的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);
}
}
VS …
public class Sum{
public int getSum(int a, int b){
return a+b;
}
}
第一个样品如何更有益?