派生类通过数据库假设我有一个属性的对象车:型号初始化.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数据库结构可根据需要使用其他字段进行更改。
谢谢!
尼克
我想减少“重复”代码的数量。当我所需要做的就是初始化某些属性时,覆盖这些方法似乎会击败目的。我想这是最简单的方法,但不是一个更有效的方法? –
我已经添加了一个我的意思的例子。你应该有很少重复的代码。 –
这将做到这一点。 –