Model という 1 つのプロパティを持つ Object Car があるとします。
次のように、データベースを使用してオブジェクトを設定します。
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 にラップされていると仮定しましょう。
私がやりたいことは、私の財産を消費しながら、それを継承することです. たとえば、新しいプロパティ「Price」を持つ新しいオブジェクト「Expensive_Car」が必要だとしましょう。
前の Car オブジェクトを利用して、この派生クラスを最も「整理された」方法で初期化するには、コードを 2 回記述する必要はありません。フィールド「価格」は、フィールド「モデル」と同じ SQL テーブルに保存されます。もちろん、モデルをプルしたのと同じように、データベースから「価格」を取得する必要があります。
私の目標は、既存のクラスを利用し、親クラスをまったく変更せずに、新しい派生クラスを使用してそれらを拡張することです。SQL データベース構造は、必要に応じて追加のフィールドを使用して変更できます。
ありがとう!
ニック