В отличие от Splendor я бы не использовал третий класс, который управляет всеми наблюдателями.
- Это добавляет сложности.
- Повторное использование событий для других типов объектов, скорее всего, приведет к нарушению принципа подстановки Лискова.
Однако, если у вас есть класс Car
, вы можете получить его Volvo : Car
, и вы все равно сможете работать с подписчиками.
Ваш дизайн находится вдругие слова в порядке.
Обратите внимание, что я не читал то количество текста, которое вы цитировали.Если вам нужна дополнительная помощь, разбейте текст на части, где, по вашему мнению, применим шаблон проектирования.