Какой паттерн применить в данной ситуации?

Все хорошего дня! Условия задачи следующие.
Есть класс представляющий человека. Его реализация в данном контексте не важна абсолютно. Человеку могут быть присвоены те или иные награды. Соответственно, награда - отдельный класс, скорее всего он будет абстрактным, и наследоваться в потомков (каждый потомок под определенный тип награды).
Проблема в следующем. Все пять порождающих паттернов которые мы можем лицезреть в банде четырех - работают касательно свойств типа isCallable, isDrawable и т.д., то есть по сути дела мы, объявляя такого рода свойства, говорим какой интерфейс реализован у данного класса. Даже если т.с. с гуманитарной точки зрения посмотреть - "подвижный"="может двигаться", "съедобный"="можно съесть" и т.д.... В моем случае с наградами сей эпитет неуместен - потому что получается что-то типа "зеленый" = "?", "высокий" = "?" и т.д. Если более конкретно - в классе наград есть такие свойства как "когда получена", "кем выдана", "тип награды", "удостоверяющий документ", "номер удостоверяющего документа" и т.п., и такого типа поля варьируются в зависимости от типа награды (какие-то должны быть включены в класс какие-то нет). Насколько уместно применение абстрактной фабрики, строителя или прототипа (и если да, то что именно использовать?), нужны ли здесь паттерны и целесообразно ли здесь вообще использование ООП?
  • Вопрос задан
  • 680 просмотров
Решения вопроса 1
LeEnot
@LeEnot
Енот-андроид
ИМХО, вы заморачиваетесь. Тут достаточно паттерна "стратегия". Фабрики и строители нужны для крупных проектов, которые планируется долго поддерживать и расширять, прототип вообще не в тему тут - он нужен, когда копировать существующий объект проще, чем конструировать новый (например, при наличии множества вычисляемых полей).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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