Я пытаюсь понять, что здесь делать. У меня есть данные о клиентах в двух разных сторонних приложениях, которые мне нужно объединить в какую-то разумную структуру данных перед внесением изменений. В настоящее время у меня есть два подкласса клиента, по одному для каждого стороннего приложения.
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 и т. Д. Каждый из этих классов имеет свой собственный алгоритм для сопоставления экземпляров ... Я хотел бы максимизировать количество повторно используемого кода.
Вопросы:
Моя текущая мысль:
Эти подклассы реализуют какой-то сопоставимый интерфейс. Этот интерфейс содержит метод, который выглядит следующим образом:
Открытая функция matchToApp (коллекция соответствует) как сопоставимая
Новый тип объекта с двумя свойствами, по одному для сопоставимого каждого приложения ...
Я уверен, что есть еще несколько творческих способов сделать это там. Есть предложения?
Спасибо