例如,我了解公共(public)/ protected /私有(private)访问器在 Java 或 PHP 中的含义。但是,您何时会选择是否将方法设为私有(private)?

想象一下,我有一个处理配置字符串的类——它们必须符合特定的正则表达式,如果是,则执行进一步的逻辑以确保字符串有效。

我目前在 Configuration 类的私有(private)方法中有此代码。此类接受配置字符串,然后在验证字符串后将值返回给客户端代码。

但是,我想对验证代码进行单元测试,所以也许它应该在另一个类中。我通常不会这样做,除非我知道代码会被重用。如果在这种情况下它只会被单个类使用,我通常只是将该方法设为私有(private)。

所以,我的问题是 - 什么设计规则应该告诉程序员一个特定的方法应该是私有(private)的,而不是被移动到它自己的类中?

最佳答案

Single Responsibility Principle 是我通常想到的。另外,请考虑您是否真的需要在此类中进行验证,或者它是否与此无关(也许验证不应在域逻辑中处理,而应在其上的另一层中处理)。
私有(private)方法,你可能已经知道不应该在单元测试中测试,所以如果你真的需要测试这种功能,也许你应该把它放在自己的验证类中,只负责验证然后测试它。

关于oop - 何时使用私有(private)方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4276998/

10-14 05:26