gpt4 book ai didi

java - 实例是否应该使用 setter/getter 来访问它们自己的私有(private)数据成员?

转载 作者:行者123 更新时间:2023-11-27 23:08:16 24 4
gpt4 key购买 nike

从每一门编程入门课开始,我们都被教导使用访问器和 setter ,而不是暴露类的内部工作原理。学生稍后学习练习的要点,但现在我明白这种做法 (A) 防止实现成为契约(Contract)导出 API 的一部分,(B) 改进封装和数据隐藏,以及 (C) 允许保证每当设置或访问变量时是否应该发生某些操作(增加计数器、记录某些内容等)。

如何在实例本身中使用 getter/setter?例如,

class A {
private:
int number = 43;
public:
int getNumber();
void setNumber(int);
};

归根结底,这真的很重要吗?是否有任何我们可以遵循的指导方针,或者是否有任何关于这种情况的书面说明?当我编程时,这个问题经常出现在我的脑海中,但我从未见过有人讨论关于实例本身的访问器/修改器。

谢谢!

最佳答案

从实例中调用 getter 或 setter 的正确用例是当您需要利用 getter 或 setter 提供的副作用、验证或计算时。如果不需要,为什么要从对象中复制这样的功能?

纯粹主义者会将副作用、验证或计算重构到他们自己的私有(private)方法中,然后在内部和从 getter/setter 调用那个方法。这样,您就不会将公共(public)接口(interface)与任何内部实现细节耦合。

关于java - 实例是否应该使用 setter/getter 来访问它们自己的私有(private)数据成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21807474/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com