根据我在大学所学的“最佳实践”类型课程,我倾向于尽可能地支持组合而不是继承。我正在查看应用程序中的一些代码,如下所示:
Public Class A
Protected _Name As String
Public Property Name() As String
Get
Return _Name
End Get
Set(ByVal value As String)
_Name = value
End Set
End Property
End Class
Public Class B
Inherits A
End Class
Public Class C
Inherits B
End Class
Public Class D
Inherits C
Public Sub SomeMethod()
'This isn't good
Name = "Ian"
End Sub
Public Shared Sub Main()
Dim d As New D
d.SomeMethod()
End Sub
End Class
在上面的例子中: D 类正在使用 A 类中的公共属性。之前的开发人员在 D 类中的 name 的初始化上面写了“这不好”。我相信他写这个评论的原因是由于业务规则,而不是他在 D 类中分配了 a.Name 的值这一事实。但是,我想检查上面的代码是否有任何问题。a.Name 由所有子类共享。B、C 和 D 类包含许多重载方法,所以我相信在这种情况下继承是正确的设计选择。
我希望以前的开发人员留下更多的文档。