我知道在接口和基類中有很多貼子,但我很難得到正確的設計模式理解。瞭解接口和基類的使用
如果我要編寫一個報告類,我的初始階段應該是創建一個包含所有報告將實現的核心屬性,方法等的接口。
例如:
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
我的想法是,它應該是一個接口,因爲其他報告不得使用「項目「,這樣我可以實現用於給定報表類的對象。
我會離開嗎?我還應該創建一個基類嗎?我沒有創建基類的邏輯是,並非所有的報告類都可以使用「Items」,所以我不想將它們定義在不被使用的地方。
你能解釋在這裏實現接口的原因嗎?你不覺得,這是給內存不必要的。我可以做到沒有界面。對? – Pankaj 2012-04-19 18:17:36
你的問題對我有點困惑。你擔心實施更多不使用「項目」的報告?儘管如此,你已經在界面中定義了它。就目前而言,任何想要實現'IReport'的類都必須提供'Items()'屬性和'ItemTotalSales()'函數。 – Thomas 2012-04-19 18:17:37
僅僅因爲你實現了一個包含Items的接口並不意味着你需要使用它。 – Xaisoft 2012-04-19 18:24:39