【问题标题】:Matching Two Subclassed Objects in vb.NET在 vb.NET 中匹配两个子类对象
【发布时间】:2010-11-24 15:43:07
【问题描述】:

我正在想办法在这里做什么。我在两个不同的 3rd 方应用程序中有客户数据,我需要在进行更改之前将它们组织成一些合理的数据结构。我目前有两个客户子类,每个 3rd 方应用程序一个。

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 的所有实例映射到它们各自的 Customer2。我有一个算法,它具有给定 Customer1 实例的逻辑,并且 Customer2s 列表找到适当的匹配项。

这是我寻找设计理念的地方...客户并不是两个应用程序之间唯一匹配的数据。我还有两个 Item 类、两个 Payment 类、两个 Invoice 类等。这些类中的每一个都有自己的算法来匹配实例……我想最大化可重用代码的数量。

问题:

  • 什么是匹配部分的好设计模式?

  • 我将匹配的对象对存储在什么数据结构中?

我现在的想法:

  • 这些子类实现了某种匹配接口。这个接口包含一个看起来像这样的方法:

    Public Function matchToApp(Collection Matchable) As Matchable

  • 一种具有两个属性的新对象类型,一个用于每个应用程序的可匹配...

我确信有一些更有创意的方法可以做到这一点。有什么建议吗?

谢谢

【问题讨论】:

    标签: vb.net design-patterns


    【解决方案1】:

    您无需为它发明自定义界面。要比较 2 个实例,您可以实现系统 IComparable (Of T ) 接口,但我认为在您的情况下,因为您可能在 HashTable 或 Dictionaly 容器中映射实例,您需要覆盖 GetHashCode() 和 Equals() 方法。请看there

    【讨论】:

      猜你喜欢
      • 2016-01-05
      • 1970-01-01
      • 1970-01-01
      • 2012-09-05
      • 2018-10-11
      • 1970-01-01
      • 2018-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多