В последнее время я начал думать, что наличие большого количества руководящих классов в вашем дизайне - это плохо. Идея еще не созрела для меня, чтобы привести убедительные аргументы, но вот несколько общих моментов:
Я обнаружил, что мне намного сложнее понять системы, которые сильно зависят от «менеджеров». Это связано с тем, что помимо реальных программных компонентов вам также необходимо понять, как и почему используется менеджер.
Менеджеры, по-видимому, большую часть времени используются для облегчения проблемы с дизайном, например, когда программист не может найти способ сделать программу Just Work TM и вынужден полагаться на классы менеджера, чтобы все работало правильно.
Конечно, ясли могут быть хорошими. Очевидный пример - EventManager
одна из моих любимых конструкций всех времен. : P Моя точка зрения заключается в том, что менеджеры, кажется, слишком часто используются, и не по какой-либо уважительной причине, кроме маскировки проблемы с архитектурой программы.
Действительно ли классы менеджера являются признаком плохой архитектуры?
EventManager
это ужасное название для класса. Якобы что- то делает с событиями, но что ?
Of course, mangers can be good. An obvious example is an EventManager
это все объясняет прямо здесь. Неправильное использование концепции - это плохая архитектура, но существуют законные варианты использования. То же самое верно для большинства всего.