【问题标题】:Access modifiers on property getters属性获取器上的访问修饰符
【发布时间】:2012-11-22 14:13:39
【问题描述】:

对于特定的上下文,我用 C# 开发,但我想这可以应用于其他语言/框架。

我了解使用私有 getter 和公共 setter 创建属性是完全合法的:

public int MyInt { private get; set; }

我无法弄清楚为什么要允许客户端设置属性而无法获取其当前值。在什么情况下可能需要这种行为?

【问题讨论】:

    标签: oop properties access-modifiers


    【解决方案1】:

    改变值的不是“客户端”,而是程序的其他部分。

    您可能希望其他对象能够通过该属性更改对象的状态。
    对象的其他部分不关心该对象的状态,但它只保留用于内部逻辑。

    这完全取决于您的应用程序的情况和结构。

    【讨论】:

    • 好吧...也许“客户”这个词用错了。我正在寻找“使用该对象的人”。其次,我正在寻找一个对象想要盲目地在另一个对象上设置属性并且从不检索它的情况(可能是一个示例)。
    • @gregsdennis:例如,我可能想用用户名和密码实例化一个数据库连接对象。但绝不能透露这些凭据。它们可以由负责的对象设置,但永远不应该被访问。详细信息仅供内部对象逻辑使用。
    • 很好的例子。谢谢。我的好奇心已经熄灭。
    猜你喜欢
    • 2013-03-09
    • 2011-02-03
    • 2014-03-06
    • 2020-07-24
    • 2013-09-18
    • 2010-10-27
    • 1970-01-01
    • 2011-11-05
    • 2017-06-13
    相关资源
    最近更新 更多