![](/s/cache/86/9b/869ba380292aa875912e36108fad951e.png)
Factory Method pattern
Подскажите, паттерн Factory Method не противоречит принципу Single Responsibility?
В книге есть такие строки
"Базовый класс фабрики. Заметьте, что "фабрика" — это всего лишь дополнительная роль для класса. Скорее всего, он уже имеет какую-то бизнес-логику, в которой требуется создание разнообразных продуктов."
Answer
![](/s/cache/a6/73/a6734f0835e96bbe2628c5222c7eeee6.png)
Здравствуйте, Сергей!
Спасибо за хороший вопрос. В какой-то степени, да, противоречит. В то же время, от разделения может и не быть очень большого выигрыша. Принципы SOLID не являются чем-то высеченным в камне.
Если у вас есть небольшой класс для работы с отчетами, в котором есть фабричный метод, то выделив всю фабричную часть в отдельный класс вы точно сделаете код сложнее, но не факт, что этим будет удобнее пользоваться.
Customer support service by UserEcho
Здравствуйте, Сергей!
Спасибо за хороший вопрос. В какой-то степени, да, противоречит. В то же время, от разделения может и не быть очень большого выигрыша. Принципы SOLID не являются чем-то высеченным в камне.
Если у вас есть небольшой класс для работы с отчетами, в котором есть фабричный метод, то выделив всю фабричную часть в отдельный класс вы точно сделаете код сложнее, но не факт, что этим будет удобнее пользоваться.