У меня есть класс Person с свойством, которое указывает, есть ли присоединенный объект Grid. Есть 3 типа объектов сетки. 2 из них будут иметь одинаковые свойства, а 3-й - совершенно разные.
Какой тип абстракции лучше всего использовать, чтобы свойство Grid класса Person могло принимать все 3 типа? Под этим я подразумеваю, должен ли я использовать абстрактный класс, базовый класс или интерфейс? Или мне стоит посмотреть дженерики?
Я думаю об использовании абстрактного класса, чтобы я мог реализовать свойства и не иметь избыточного кода в двух классах, которые имеют одинаковые свойства. Это также заставит любого, кто добавляет новые типы сетки, создавать новый класс, производный от него. Мне нужна эта последняя часть, потому что мне нужно проверить, какой это тип объекта Grid, используя отражение, чтобы я мог добавить некоторую условную логику.
Просто странно, что у 3-го типа сетки будут эти ненужные свойства.