最好使用私有方法还是受保护的方法?

2022-08-30 13:08:42

在我的很多PHP项目中,我最终得到的类具有我不打算扩展的非公共函数。

最好将这些声明为受保护还是私有?

我可以看到两种方式的参数 - 使它们私有是一种更保守的方法,但是可以说,如果我希望该方法被扩展并且它清楚地表明哪些方法由基类扩展,则可以在以后保护它们。

另一方面,使用私有是否在某种程度上是反社会的,因为它阻碍了理论上的未来开发人员在不进行修改的情况下扩展我的代码?


答案 1

我的本能是把它们保密,直到你需要它们不然。

有人认为(可悲的是,我把链接放错了地方)将方法设为私有是反社会的,就像使它们成为“最终”一样,因为它对人们如何使用你的代码是相当独裁的。

然而,我不相信,并同意你应该只暴露你真正需要的东西。例外情况是库或工具包,您将期望用户希望以您永远无法预见的方式扩展(在一般意义上)您的代码。在这种情况下,精心选择的方法受到保护可以被视为提供弹性点。


答案 2

我认为你应该只在需要的时候暴露你需要的东西。这使得对更改进行影响评估变得更加容易。也就是说,如果一种方法是私有的,你知道如果你改变它,影响将是最小的。


推荐