Исходя из вашего опыта, насколько критично передавать конфиги в конструктор класса?
Допустим есть класс RedisCache, ему надо знать куда коннектиться, смотрел разные фреймворки, в одном конфиг ищет сам класс кеширования из глобального конфига, у другого они передаются непосредственно в конструктор, у третьего передается Объект соединения.
Какой метод более рационален исходя из вашего опыта?
из опыта лучше всего использовать DI (Dependency Injection).
то есть, есть конфиг, где указаны парметры redis для кешера.
и есть конфиг DI где указано как создавать объекты Redis и RedisCache. скорее всего Redis объект будет передаваться в контруктор RedisCache.
Хотя в случае с DI, вы сможете безболезненно переделать любой вариант в любой другой на любом этапе разработки.
а также например в какой то момент у вас будет один инстанс редиса для всех целей на весь проект (и не нужно делать копии обьекта Redis, с отдельными соединениями), но вы легко можете только через конфиг переделать и выделить ему отдельный инстанс для кеша.
Правильно ли я понимаю Dependency Injection - инъекция зависимостей, в данном случае автор указал в вопросе данный метод: передача класса конфига в конструктор RedisCache
diamond: "передача класса конфига в конструктор RedisCache" это совсем не то.
DI это библиотека которая создает объекты сама, объекты при этом ничего о DI не знают, передача конфига подразумевает что RedisCache как минимум знает чтото об этом конфиге, это плохо, по ряду причин.