2010-11-20 18 views
0

我想弄清楚這裏要做什麼。我有兩個不同的第三方應用程序中的客戶數據,我需要在進行更改之前將其組織成合理的數據結構。我目前有兩個客戶類,每個第三方應用程序一個。在vb.NET中匹配兩個子類的對象

Public MustInherit Class Customer 
    Public ID as String 
    Public Name as String 
    Public.... more shared members here 
End Class 

Public Class Application1Customer 
    Inherits Customer 

    Public Application1SpecificData.... 
End Class 

Public Class Application2Customer 
    Inherits Customer 

    Public Application2SpeceficData..... 
End Class 

我需要將Customer1的所有實例映射到它們各自的Customer2s。我有一個算法,該算法具有給定Customer1實例的邏輯以及Customer2s列表找到適當的匹配。

這裏是我在尋找設計理念的地方......客戶不是兩個應用程序之間唯一匹配的數據。我還有兩個Item類,兩個Payment類,兩個Invoice類等等。這些類中的每一個都有自己的算法來匹配實例...我想最大化可重用代碼的數量。

問題:

  • 什麼是匹配部分的好的設計模式?

  • 什麼數據結構存儲匹配對象對?

我目前的想法:

  • 這些子類實現某種可匹配的接口。此接口包含,看起來像的方法:

    公共功能matchToApp(集可匹配)作爲可匹配

  • 一個新的對象類型有兩個屬性,一個爲每個應用程序的可匹配...

我確信有一些更有創意的方法可以做到這一點。有什麼建議麼?

謝謝

回答

0

你不需要爲它發明定製接口。要比較兩個實例,你可以實現系統IComparable(Of T)接口,但我認爲你的情況,因爲你要映射實例可能在HashTable或Dictionaly容器中,你需要覆蓋GetHashCode()和Equals()方法。請看there

相關問題