Коли ви прочитаєте допис у блозі, на який ви посилаєтесь у коментарях, ви побачите, що "бути менеджером, якщо за іншим ім'ям" - це саме те, що ви хочете, щоб ви робили. Загальна думка в розробці програмного забезпечення полягає в тому, що глобальні змінні є злими, і єдиною альтернативою є те, що будь-які дані зберігаються за іншими даними.
Проблема класу з назвою FoobarManager
полягає в тому, що слово "Менеджер" не говорить вам про те, що клас робить насправді . Наприклад:
- Коли він керує механікою гри foobars, ви можете назвати її
FoobarController
.
- Коли він створює foobars, але потім делегує контроль над чимось іншим, це
FoobarFactory
або FoobarBuilder
.
- Коли він малює фобар на екран, це a
FoobarRenderer
.
- Коли він слухає події, породжені фоабрами, це a
FoobarEventHandler
.
- Коли він чекає, що щось станеться з фоабами, це
FoobarObserver
.
- Коли це просто німий власник даних для колекції фобар без будь-якої логіки, ви просто назвете його
Foobars
.
Ви можете назвати будь-який із цих класів "Менеджером". Але тоді він міг би виконувати будь-яку з цих функцій. А пізніше, коли ви зрозумієте, що вам потрібен інший з перерахованих вище функцій, ви також інтегруєте це у FoobarManager. Таким чином, ви закінчитеся з об'єктом Бога, який порушує принцип розділення турбот (кожен клас повинен робити саме одне).