2

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

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

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

规则示例:

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

谢谢你。

4

3 回答 3

7

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

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

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

于 2012-05-11T13:23:43.393 回答
1

可以像规则一样应用于某些特定项目的某些特定部分(应该说,听起来很奇怪的设计,但是..),但它永远不会成为软件设计中的通用规则,即使在一个单一的领域也是如此项目。

于 2012-05-11T13:23:15.093 回答
1

老板决定的规则可以帮助调试了解对象的属性。这不是规则,您可以将其视为项目经理创建的设计模式。

public class MyClass
{
    private ISomeProvider someProvider;

    public ISomeProvider SomeProvider
    {
        get
        {
            //logic here 
            return this._someProvider;
        }
    }

    public MyClass(ISomeProvider someProvider)
    {
        this._someProvider = someProvider;
    }

    public void DoSomeWork()
    {

    }
}
于 2012-05-11T13:26:04.177 回答