У меня есть серия классов в проекте, которые все делают одно и то же, но на разных объектах.Из-за того, что некоторые из них были закодированы в разное время и разными людьми, существует некоторая непоследовательность в именовании.Я хочу обновить свой код таким образом, чтобы обеспечить некоторую согласованность не только в текущих объектах, но и в новых, которые будут созданы в будущем.Мое понимание программирования заставляет меня верить, что мне нужен либо базовый класс, либо интерфейс, но я не могу понять, как заставить их работать.Я хочу иметь следующие методы:
internal BusinessObject MethodA(EntityObject entity)
internal Void MethodB(EntityContext context, BusinessObject obj, EntityObject entity)
Проблема, с которой я сталкиваюсь, заключается в том, что в каждом классе «BusinessObject» и «EntityObject» будут разными, например, в одном из них могут быть «CarObject and CarEntity» ив другом это будет "BusObject and BusEntity".Я все еще хочу эти два метода, и я все еще хочу, чтобы они назывались MethodA и MethodB. Я просто хочу поменять фактические типы объектов в реализации.Сами реализации будут отличаться, потому что они используют разные объекты.
Я знаю типы объектов во время компиляции, и мне нужно иметь возможность доступа к свойствам объектов, поэтому, если используются универсальные шаблоны, мне нужно привести универсальный тип как правильный тип в реализации.Также реализация MethodA требует создания «нового» BusinessObject, то есть «BusinessObject x = new BusinessObject ()», если это имеет какое-либо значение.
Я попытался использовать интерфейс с обобщениями в методах, а также базовый класс сабстрактные методы, но я не смог понять, как заставить их работать.
Каков наилучший способ справиться с этим?Пример кода будет высоко ценится.