派生類通過數據庫假設我有一個屬性的對象車:型號初始化.NET
我會使用數據庫如下填充對象:
Public Class Car
Public Property Model() As String
Get
Return _Model
End Get
Set(ByVal value As String)
_Model = value
End Set
End Property
Private _Model As String
Private Sub SetObjectData(ByVal theObjReader As System.Data.SqlClient.SqlDataReader)
Try
Me._Model = theObjReader("Model").ToString()
Catch ex As Exception
Throw New Exception("Unable to Initialize Car.")
End Try
End Sub
Public Sub New(ByVal Car_ID As Integer)
Dim connection As New SqlConnection(DBTool.DataConnectionString)
Try
Dim cmd As SqlCommand
cmd = New SqlCommand("getCarByCar_ID", connection)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@Car_ID ", Car_ID)
connection.Open()
Dim objReader As SqlDataReader = cmd.ExecuteReader()
Do While objReader.Read()
SetObjectData(objReader)
Loop
objReader.Close()
connection.Close()
Catch ex As Exception
connection.Close()
End Try
End Sub
End Class
現在,讓我們假設爲因爲這個類被封裝在一個DLL中。
我想要做的是繼承它,同時消耗我的屬性。例如,假設我們想要一個新的對象「Expensive_Car」和一個新的屬性「價格」。
如何利用以前的Car對象並以最「有組織」的方式初始化此派生類而無需兩次編寫代碼? 「價格」字段保存在與「模型」字段相同的SQL表中。當然,我們需要從數據庫中獲取「價格」,就像我們拉取模型一樣。
我的目標是利用現有的類並使用新的派生類來擴展它們,而無需改變父類。 SQL數據庫結構可根據需要使用其他字段進行更改。
謝謝!
尼克
我想減少「重複」代碼的數量。當我所需要做的就是初始化某些屬性時,覆蓋這些方法似乎會擊敗目的。我想這是最簡單的方法,但不是一個更有效的方法? –
我已經添加了一個我的意思的例子。你應該有很少重複的代碼。 –
這將做到這一點。 –