gpt4 book ai didi

c# - 在定义变量的类中使用 getter 和 setter?

转载 作者:行者123 更新时间:2023-12-01 06:31:17 24 4
gpt4 key购买 nike

我一直在阅读有关 getter 和 setter 的内容,我有一个问题。访问声明变量的类中的变量时是否应该使用 getter 和 setter?这里似乎不需要 getter 和 setter,因为变量是私有(private)的并不重要,声明它的类总是可以访问它......?

或者 getter 和 setter 是否只应在外部类想要访问这些变量时使用?

最佳答案

虽然该语言不要求您这样做,但在访问通过 getter 和 setter 公开的私有(private)字段时,最好使用 getter 和 setter。在某些情况下,我什至会说,即使对于尚未直接公开的内部属性,使用它们也是有意义的。

这样做是一个很好的做法,因为它将读取和修改私有(private)字段的代码隔离为一组方法。这样您以后就可以提供额外的验证,甚至可以更改属性在内部存储的方式,而无需更改太多位置。

更改的一个示例可能是一个类,它通过 getter(访问器)/setter(修改器)方法公开最初存储为该类中的私有(private)字段的某个属性。后来您意识到您需要为该属性使用不同的存储库 - 可能从文件或数据库等中读取它。此时,如果您仅使用方法来访问和修改属性,您可以简单地更改实现更改的访问器和修改器方法的代码。

另一个例子是扩展类时的实例。它提供了更好的封装。

即使对于测试来说,抽象对逻辑属性的私有(private)“存储库”的访问也是有意义的。

注意:我指的是您公开为类的属性的私有(private)成员的概念,尽管 Java 不一定这样引用它们。

最后,我对使用方法而不是直接访问私有(private)成员的建议的强调不过分:建议。许多人认为这是很好的做法,因此我建议您遵循,但如果您有充分的理由不遵循,请务必不要遵循!

关于c# - 在定义变量的类中使用 getter 和 setter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9638318/

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