Останнім часом я почав думати, що мати багато класів менеджерів у своєму дизайні - це погано. Ідея недостатньо дозріла для мене, щоб зробити переконливий аргумент, але ось кілька загальних моментів:
Мені здалося, що набагато складніше мені зрозуміти системи, які сильно покладаються на "менеджерів". Це тому, що, крім власне компонентів програми, ви також повинні розуміти, як і навіщо використовується менеджер.
Менеджери багато часу, здається, використовували для полегшення проблеми з дизайном, як, наприклад, коли програміст не міг знайти спосіб зробити програму Just Work TM і довелося покладатися на класи менеджерів, щоб все працювало правильно.
Звичайно, керування можуть бути хорошими. Очевидний приклад - EventManager
одна з моїх улюблених за весь час конструкцій. : P Моя думка полягає в тому, що менеджери, здається, надто часто зловживають, і без жодної вагомої причини, крім маскування проблеми з архітектурою програми.
Чи справді класи менеджерів є ознакою поганої архітектури?
EventManager
- жахливе ім’я для класу. Це нібито робить що - то з подіями, але що ?
Of course, mangers can be good. An obvious example is an EventManager
це все пояснює. Неправильне використання поняття - це погана архітектура, але є законні випадки використання. Те ж саме стосується більшості всього.