我有2個班,一個家長和一個孩子。使用子類中的屬性訪問父類還是使父類公共更好?
Class Test
Private Test_Text
Private Sub Class_Initialize()
Test_Text = "Hello"
End Sub
Private Sub Class_Terminate()
End Sub
Public Property Get Text
Text = Test_Text
End Property
Public Property Let Text(ByVal strIn)
Test_Text = strIn
End Property
End Class
Class SubTest
Public SubTest_Test
Private SubTest_Interger
Private Sub Class_Initialize()
Set SubTest_Test = New Test
End Sub
Private Sub Class_Terminate()
Set SubTest_Test = Nothing
End Sub
Public Property Get int
int = SubTest_Integer
End Property
Public Property Let int(ByVal intIn)
SubTest_Integer = intIn
End Property
End Class
因爲我已經SubTest_Test公共我可以訪問它通過子類這樣
Set MyTest = New SubTest
MsgBox MyTest.SubTest_Test.Text
這是可以接受的,或者我應該在子類訪問家長讓SubTest_Test私人和寫入性能屬性?
編輯:我想這個問題應該是,有直接訪問父母的任何安全/可用性問題。
我越想越想從可用性的角度來看,最好是隱藏使用子類的任何人的父項。這樣,當你從子類創建一個對象時,你不必知道父類的任何內容。
這似乎是以這種方式進行這樣的論證。當我啓動我的汽車時,我不想讓引擎啓動,我不想單獨啓動每個系統。我想要一個啓動所有系統的Car.Start()。 – Tester101 2009-01-20 00:40:21
不錯的一點!我同意Car.Start()從組織的角度來看,將Engine方法收集到一個地方是有意義的。然而,最初的問題是詢問是否創建與子類屬性直接映射到父類的1對1關係。 – 2009-01-20 01:14:03