哪些最佳实践适用于引用可能为null的包含对象的属性设置器?

时间:2011-09-08 16:45:29

标签: .net design-patterns data-binding language-agnostic coding-style

我正在使用一个类来公开包含对象的属性以用于数据绑定。我遇到了几行嗅觉的代码,但我不确定改进它们的最佳方法。

Class Driver
  Public Property License As LicenseInfo
  Public Property LicenseState
    Set(value As String)
      If License Is Nothing Then Exit Property   '<-- is there a better way?
      License.State = value
    End Set
    ...
  End Property
  ...
End Class

在这里创建一个新的License对象会更好吗?是否有适用于此方案的最佳实践?

1 个答案:

答案 0 :(得分:2)

取决于您的业务规则,但最常见的是:

1.抛出异常

999.实例化要设置的值,并设置它(厌倦)

抛出异常通常是最好的方法,因为如果对象不存在,并且您在setter中创建它,那么您的代理/业务流可能会关闭。投掷也让其他开发人员知道他们的逻辑是错误的 - 他们正在错误地使用你的课程,这就是为什么它是第一选择。

你的代码库就像一台机器 - 当你按照你编写它们的方式使用它们时它们效果最好(如果你使用蹲式机器错了你就会破坏你的背部)。所以让人们知道他们错了。