我知道有很多关于接口和基类的帖子,但我很难理解正确的设计模式。
如果我要编写一个报告类,我最初的想法是创建一个包含所有报告都将实现的核心属性、方法等的接口。
例如:
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
我的想法是它应该是一个接口,因为其他报表可能不使用“项目”,这样我就可以实现用于给定报表类的对象。
我走远了吗?我应该还刚刚创建了一个基类吗?我不创建基类的逻辑是,并非所有报表类都可以使用“项目”,所以我不想在不使用它们的地方定义它们。