История изменений
Исправление tailgunner, (текущая версия) :
Я имел в виду, что если main должен обладать лишним знанием о компоненте, то это потенциальные проблемы с изоляцией
Почему «лишним»? Он просто вызывает конструктор и передает туда поддерево. Но это и всё.
Пока компонентов два-три, усложнять дейсnвительно смысла нет. Но когда больше, main просто засрется (IMHO).
Если компонентов много, делается отдельная функция (функции) конструирования приложения.
Например они могут знать строку «path.to.my.leaf», заправлять ее в класс конфига и получать данные.
То есть все компоненты получают ссылку на весь конфиг, а используют только его часть. Вот это - отсутствие изоляции.
Исходная версия tailgunner, :
Я имел в виду, что если main должен обладать лишним знанием о компоненте, то это потенциальные проблемы с изоляцией
Почему «лишним»? Он просто вызывает конструктор и передает туда поддерево. Но это и всё.
Пока компонентов два-три, усложнять дейсnвительно смысла нет. Но когда больше, main просто засрется (IMHO).
Если компонентов много, делается отдельная функция (функции) контруирования приложения.
Например они могут знать строку «path.to.my.leaf», заправлять ее в класс конфига и получать данные.
То есть все компоненты получают ссылку на весь конфиг, а используют только его часть. Вот это - отсутствие изоляции.