私のビジネスオブジェクトがデータをロードする方法として、私は本当に不自然な例を持っています。ただし、以下に示すような状況を防ぎたいと思います。ここには欠点があることは知っていますが、それは(これまでのところ)まさにその通りです!インターフェイスなどに再構築せずにこれを実現するにはどうすればよいですか?
Public Class Car
Public Property Passengers As Integer
Public Shared Sub Fill(c As Car, r As SqlDataReader)
Passengers = r.GetInt32(0)
End Sub
End Class
Public Class UsedCar
Inherits Car
Public Property PreviousOwner As String
Public Shared Sub FillUsed(l As Limo, r As SqlDataReader)
Passengers = r.GetInt32(0)
PreviousOwner = r.GetString(1)
End Sub
End Class
Public Sub CreateVehicles()
Dim c As New Car()
Car.FillWithStuff(c, GetSqlReader(carId))
Dim l As New UsedCar()
UsedCar.FillUsed(l, GetSqlReader(usedCarId)) 'Great
Car.Fill(l, GetSqlReader(usedCarId)) 'No! << Stop this at once!
UsedCar.Fill(l, GetSqlReader(usedCarId)) '<<< Even more wrong!
End Sub