私有方法优于公共方法

lbj-ub:

我正在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;
    }
}

第一个样本如何更有益?

胡安·安东尼奥·戈麦斯·莫里亚诺:

为了添加某些内容,可以始终安全地更改私有方法,因为您确定只能从自己的类中调用该方法,所以没有外部类可以调用私有方法(它们甚至看不到)。

因此,拥有私有方法始终是一件好事,因为您知道更改它没有问题,即使您可以安全地向该方法添加更多参数。

现在想想一个公共方法,任何人都可以调用该方法,因此,如果添加/删除参数,则还需要更改对该方法的所有调用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章