Итак, я вернулся, чтобы еще раз задать вопрос, связанный с паттернами.Это может быть слишком общим, чтобы ответить, но моя проблема заключается в следующем (я программирую и применяю концепции, которые я изучаю по мере продвижения вперед):
У меня есть несколько структур внутри структур (обратите внимание, я использую слово структура в общем смысле, а не в строгом смысле C struct
(воу, что за скороговорка)), и происходит довольно сложное взаимодействие.Используя пример одного из моих предыдущих вопросов, у меня есть Unit
объекты, UnitStatistics
объекты, General
объекты, Army
объекты, Soldier
объекты, Battle
объекты, и список можно продолжить, некоторые организованыв древовидной структуре.
После небольшого исследования и изучения вопроса я решил использовать модель посредника, потому что взаимозависимости становились слишком мелочными, а классы начинали казаться слишком тесно связанными (да, еще один термин, который я простоузнал и слишком рад, что не использовать его где-то).Шаблон имеет смысл, и он должен выправить некоторые хаотические спагетти, которые у меня сейчас кипятятся в моем проектном котле.
Но, ну, я думаю, я еще недостаточно изучил дизайн ОО.У меня такой вопрос (наконец, PS, я надеюсь, что это имеет смысл): должен ли я иметь одного центрального посредника, который занимается всеми коммуникациями в рамках программы, и возможно ли это вообще?Или я должен иметь, скажем, абстрактный медиатор и один субклассированный медиатор на тип структуры, который связан с коммуникацией определенного набора классов, например, конкретного медиатора на армию, который помогает армии, ее полководцу, ее подразделениям и т. Д.
Я больше склоняюсь ко второму варианту, но я действительно не эксперт, когда дело доходит до ОО-дизайна.Итак, третий вопрос: что я должен прочитать, чтобы узнать больше об этом предмете (я посмотрел книгу Design Patterns от Head First, и книгу GoF, но они скорее "изучают словарный запас")Это книга, а не книга «научись использовать свой словарь», которая мне в этом случае нужна.
Как всегда, спасибо за любую помощь (включая остроумные комментарии).