我的老板坚持以下规则:传递给构造函数的所有变量都应该通过只读属性提供.
我没有看到为什么这应该是真实的真正原因,因为阶级应该这样做,而不是为他人提供他们的结构.我知道有时它很有用,但这不是一般规则.
我的想法是否正确?我错过了什么吗?任何人都可以添加更多的论点或反对吗?
规则示例:
public class MyClass
{
public MyClass(ISomeProvider someProvider)
{
SomeProvider = someProvider;
}
public ISomeProvider SomeProvider { get; private set; }
public void DoSomeWork()
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
就个人而言,我会说不......我从不相信有一条适合所有人的规则.如果参数在类内部使用,则无需公开它们.
如果您将"原始"字符串密码传递给加密类,则不希望原始字符串在对象的整个生命周期内都可访问,实际上这样做可能会带来安全风险.
另一方面,有时您必须遵循团队/经理制定的标准.如果你认为原则是错误的,请讨论这个详细说明支持/反对这个想法的论点.