Какой паттерн проектирования выбрать для списка объектов разного типа?

Есть три типа объектов:

1) Слот, который отображает информацию
2) Свободный слот
3) Заблокированный слот

Суть проблемы: как правильно создать коллекцию, которая будет хранить объекты всех трех типов и сохранить доступ к уникальным полям этих объектов без проверки на тип и приведения к этому типу? Пишу на C#. Пока в голове вертится только решение с проверкой на тип. Может быть, существует какой-то паттерн проектирования, который позволяет решить данную задачу?
  • Вопрос задан
  • 3046 просмотров
Решения вопроса 2
@CAMOKPYT
Реализовать одинаковый интерфейс для всех трех видов объектов, никаких паттернов
Ответ написан
Nick_Field
@Nick_Field Автор вопроса
Пересмотрел свое решение. Решил сделать просто наследование, плюс Property, которые будут возвращать коллекции конкретного типа для подписки/отписки от событий.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
anyd3v
@anyd3v
Как я понимаю вам нужен pattern matching, я не силен в С# (последний раз использовал в 2010 году)
Посмотрите тут есть какие то мысли на этот счет
codebetter.com/matthewpodwysocki/2008/09/16/functi...
stackoverflow.com/questions/6031555/implementing-p...
Ответ написан
Комментировать
@gleb_kudr
Вот варианты:

1. Наследование от одного класса
2. Реализация одного интерфейса.
3. Специальный класс-обертка, который умеет принимать на вход элементы вашего зоопарка и преобразовывать их в стандартный интерфейс к коллекции.

И я не очень понимаю, чем вам не нравится приведение типов для доступа к уникальным полям. Это абсолютно стандартная практика.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы