c# - 传递给构造函数的变量是否应该作为属性可用?

标签 c# oop

我的老板坚持以下规则:传递给构造函数的所有变量都应该通过只读属性可用。

我没有看到为什么这应该是真的真正原因,因为类应该做它应该做的事情而不是向其他人提供他们的结构。我知道有时它很有用,但这不是一般规则。

我的想法正确吗?我错过了什么吗?任何人都可以添加更多的论点或反对吗?

规则示例:

 public class MyClass
 {
      public MyClass(ISomeProvider someProvider)
      {
          SomeProvider = someProvider;
      }
      public ISomeProvider SomeProvider { get; private set; }
      public void DoSomeWork()
      {
          ...
      }
 }

谢谢。

最佳答案

就我个人而言,我会说不...我从不相信存在适合所有人的规则。如果参数在类内部使用,则无需公开它们。

如果您将“原始”字符串密码传递给加密类,您不会期望原始字符串在对象的整个生命周期内都可以访问,实际上这样做可能会带来安全风险。

但另一方面,有时您必须遵循团队/经理制定的标准。如果您认为该原则是错误的,请对此进行讨论,详细说明支持/反对该想法的论据。

关于c# - 传递给构造函数的变量是否应该作为属性可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10552156/

相关文章:

python - Python 中的对象类型转换(设计建议)

c# - 银光。将样式项绑定(bind)到数据上下文

c# - 即使在使用任务时也无法等待 'Void'

C# Byte[] 加密

oop - 多态期间内存会发生什么?

javascript - 在原型(prototype)方法中的匿名函数中访问实例变量

Android - 数据库类结构 OOP

c# - linq查询c#中的内部选择查询

c# - 我们如何解决将 Access DB 从生产服务器转移到实时服务器的日期时间问题

c++ - 如何查找类中未定义的虚函数