В настоящее время у меня есть класс, который инкапсулирует список типизированных объектов и реализует некоторые интерфейсы, такие как IEnumerable. Мне нужен второй класс с дополнительными, немного разными свойствами. Поэтому я буду создавать базовый класс A и получить новый класс B и новый класс C от A.Избегайте копирования и вставки почти общего кода в подклассы
Однако у меня есть код (например, как код для .Find с использованием делегатов), который почти такой же, как в B и C. Единственное отличие состоит в том, что код в B поиска в личном списке типизированных объектов (скажем, лицо) и код в C поиск приватного списка различных объектов (скажем, животные):
private static bool Find(Person xx)
{
if (xx.Id == someID)
{
return true;
}
else
{
return false;
}
}
Как я хочу, чтобы избежать копирование/вставка, мой вопрос: что такое хорошая стратегия, чтобы избежать чего-то подобного?
Единственный способ, которым я представлял, состоял в том, чтобы объявить список общих объектов в A и указать методы в A на это. В B и C у меня тогда не было бы никакого кода, но я теряю все преимущества типизированного списка.
Сделайте свой класс Обобщенный –