这是一个相当简单的问题,两者都有效。但我只是想知道最佳做法是什么。当子类更改基类中的变量时。它应该调用属性还是只更改基础变量。
我没有使用该属性对数据执行某些操作。子类中的代码是相同的。但是什么被认为是OOP的最佳实践?
示例代码:
Public Class TestDirect
Protected temp As Integer
End Class
Public Class TestChldDirect
Inherits TestDirect
Public Sub New()
MyBase.temp = 1
End Sub
End Class
与
Public Class TestProperty
Private _temp As Integer
'
Public Property temp() As Integer
Get
Return Me._temp
End Get
Set(ByVal value As Integer)
Me._temp = value
End Set
End Property
End Class
Public Class TestChldProperty
Inherits TestProperty
Public Sub New()
MyBase.temp = 1
End Sub
End Class
答案 0 :(得分:1)
第二种方法可以在以后为您提供更大的灵活性,并更好地保护/隐藏您的底层实现。例如,在您的示例中,您可能希望修改临时类型,添加一些验证等。在第一个示例中,这些更改将更加困难,因为您将影响从基类派生的类。在第二个示例中,您可以在不影响任何派生类的情况下进行更改。