OOP:setter 应该是私有的吗?

Tho*_*ltz 3 oop setter class

在类中编写 getter/setter 时,setter应该是私有方法吗?

必须编写另一个方法来设置变量似乎有点多余,但似乎这可能允许更易于维护的代码结构。

Tom*_*icz 5

Setter 是一种允许修改对象的内部状态而不直接暴露该对象的方法。我们稍后可以在设置器中包含验证或其他逻辑。

如果你的 setter 是私有的,那么你就没有抓住重点。这就像你家里有一扇门总是关着的,甚至不允许打开。同样在类中,您可以直接访问该字段,为什么要在那里使用 setter 呢?

当然,真正的问题是:我们到底应该有 setter 吗?现在的典型类包含一堆字段、自动生成的 getter/setter,并且没有逻辑。这根本就不是一堂课。它只是一个访问元素的方式很尴尬的结构。但这不是你所要求的。