インターフェイスと基本クラスに関する投稿がたくさんあることは知っていますが、正しい設計パターンを理解するのに苦労しています。
レポート クラスを作成する場合、最初に行うことは、すべてのレポートが実装するコア プロパティ、メソッドなどのインターフェイスを作成することです。
例えば:
Public Interface IReportSales
Property Sales() As List(Of Sales)
Property ItemTotalSales() As Decimal
End Interface
Public Interface IReportProducts
Property Productss() As List(Of Inventory)
Property ProductsTotal() As Decimal
End Interface
次に、インターフェイスを実装するクラスがあると仮定します。
Public Class MyReport
Implements IReportSales
Public Property Sales() As System.Collections.Generic.List(Of Decimal) Implements IReportItem.Sales
Get
Return Sales
End Get
Set(ByVal value As System.Collections.Generic.List(Of Decimal))
Items = value
End Set
End Property
Public Function ItemTotalSales() As Decimal Implements IReport.ItemTotalSales
Dim total As Decimal = 0.0
For Each item In Me.Sales
total = total + item
Next
End Function
End Class
私の考えでは、他のレポートは「アイテム」を使用しない可能性があるため、インターフェイスにする必要があると考えていました。このようにして、特定のレポート クラスに使用されるオブジェクトを実装できます。
私は道を外れていますか?基本クラスを作成したばかりなのでしょうか? 基本クラスを作成しないという私の論理は、すべてのレポート クラスが「アイテム」を使用するわけではないため、使用されていない場所でそれらを定義したくないというものでした。