2010-11-20 18 views
0

Burada ne yapacağımı anlamaya çalışıyorum. Değişiklik yapmadan önce, bazı makul veri yapılarında düzenlemem gereken iki farklı 3. parti uygulamasında müşteri verilerine sahibim. Şu anda her bir üçüncü taraf uygulaması için iki alt müşteri sınıfım var.Iki Alt Sınıflı Nesnelerin Eşleştirilmesi, 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 

Müşteri1'in tüm örneklerini kendi Müşteri2'lerine eşlemeliyim. Ben bir Müşteri1 ve mantıksal bir mantığa sahip bir algoritma var.

Tasarım fikirleri aradığım yer şurası ... Müşteriler, iki uygulama arasında eşleşen tek veri değildir. Ayrıca iki Öğe sınıfı, iki Ödeme sınıfı, iki Fatura sınıfı vb. Var. Bu sınıfların her biri örneklerle eşleştirmek için kendi algoritmasına sahip ... Yeniden kullanılabilir kod miktarını en üst düzeye çıkarmak istiyorum.

Sorular:

  • bölümünü eşleştirmek için iyi bir tasarım deseni nedir?

  • Eşleşen nesne çiftini hangi veri yapısında depolarım?

Benim şu anki düşünce:

  • Bu alt sınıflar matchable Arayüz çeşit uygulamak. Bu arayüz görünen bir yöntemi içeren gibi:

    gibi

    Public Function matchToApp (Koleksiyon matchable) matchable

  • iki özellik, diğeri her uygulama en matchable ... sahip yeni nesne türü

Eminim ki bunu yapmanın daha yaratıcı yolları vardır. Baska öneri?

Teşekkür

cevap

0

bunun için size özel arabirimler icat etmek gerekmez. 2 örneğini karşılaştırmak için, sistem IComparable (Of T) arabirimini uygulayabilirsiniz, ancak muhtemelen HashTable veya Dictionaly kapsayıcılarında örnekleri eşleştirmeniz gerektiğinden sizin durumunuzda düşünürseniz, GetHashCode() ve Equals() yöntemlerini kullanmanız gerekir. Lütfen there

'a bakın