Как я могу издеваться над OleDbDataAdapter
Вы не можете, потому что это NotInheritable
(sealed
- c#).
Public NotInheritable Class OleDbDataAdapter
Inherits DbDataAdapter
Implements ICloneable
Что у нас здесь есть Leaky Abstraction .
Предоставьте только то, что явно необходимо для выполнения желаемой функции.
Например,
Public Interface IOleDbDataAdapter
Function Fill(query As String, dataTable As DataTable) As Integer
End Interface
Таким образом, детали / проблемы реализации, такие как OleDbDataAdapter
, не будут вызывать тесную связь .
Public Class DataTableOfDataFromExportCSV
Private adp As IOleDbDataAdapter
Public Sub New(iadp As IOleDbDataAdapter)
adp = iadp
End Sub
Public Function FilledDataInDataTable(query As String) As DataTable
Dim dt As New DataTable
adp.Fill(query, dt)
Return dt
End Function
End Class
Обратите внимание на удаление данных времени выполнения, которыми можно управлять в композиции root при построении графов объектов ваших компонентов или после того, как компонент уже был создан.