【问题标题】:creating instances of a class that has several readonly properties创建具有多个只读属性的类的实例
【发布时间】:2011-05-24 16:43:38
【问题描述】:

创建和初始化具有多个只读属性的类的实例的优雅方法是什么?在构造函数中传递所有值不是很方便。

目的是实例在初始化后是不可变的。但是,如果构造函数不用于初始化所有属性值,那么如何从另一个类更改只读属性?

【问题讨论】:

    标签: vb.net properties immutability instantiation


    【解决方案1】:

    它们是只读的,因此它们在构造后无法修改。此行为是设计使然。

    如果您想减少参数计数,请查看Parameter Object Pattern

    【讨论】:

    • 该类本身已经用作 ParameterObject !但就像模式描述所暗示的那样,为不同的常见用例和/或 mutator 方法使用多个构造函数可能是有用的想法。为模式 +1。
    • 而且我想我可以将类划分为一组 ParameterObjects 分组相关参数。
    【解决方案2】:

    你有两个选择

    1. 在初始化后创建一个公共子来更新变量,或者将更新添加到类的私有方法中的另一段代码中。

    2. 您使用反射来更新私有变量值。

    第一种方式是迄今为止最好的选择,秒是一种技巧。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-20
      • 1970-01-01
      • 2013-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多