bespoyasov / solidbook

Book about the SOLID principles and object-oriented software design.
https://solidbook.vercel.app
MIT License
609 stars 58 forks source link

Доработать раздел про виды инъекций #173

Closed olegKusov closed 2 years ago

olegKusov commented 2 years ago

https://ota-solid.vercel.app/dip/patterns

Что есть сейчас: не очень понятно зачем нужно внедрение через сеттеры и интерфейсы. В статье сказано, что "Если зависимостей много, перечисление их всех в конструкторе может стать проблемой".

Что можно улучшить: Много зависимостей - это плохо и означает, что класс берет на себя слишком много ответственности, что нарушает принцип SRP. Здесь, кажется, стоит представить более убедительный пример и указать, что (далее цитата из статьи на хабре про инъекцию через сеттеры) "Сеттеры следует использовать для инъекций опциональных зависимостей. Класс должен быть способен функционировать, даже если они не были предоставлены. Зависимости могут быть изменены в любое время после создания объекта. Это может быть, а может и не быть преимуществом в зависимости от обстоятельств. Иногда предпочтительно иметь неизменяемый объект. Иногда же полезно менять составные части объекта во время выполнения — например управляемые бины MBean в JMX."

bespoyasov commented 2 years ago

Звучит хорошо! Замечания про опциональность зависимостей в сеттерах и о количестве зависимостей — по делу, поддерживаю.

Будет круто, если получится сделать PR 🙌