Фабричный (метод) шаблон и вызовы других методов или других фабрик в глубокой / длинной цепочке - PullRequest
1 голос
/ 05 марта 2020

На моей работе ведется громкая дискуссия о том, что такое фабричный шаблон.

Основной вопрос в том, может ли тот, кто находится внутри фабрики, создаваемой объектом, также разветвлять запросы на заполнение его подклассов другие фабрики.

Или родительская фабрика заранее нуждается в этих деталях как часть своего конструктора в качестве параметра вместе с другими данными?

Можно ли вызывать другие фабрики внутри фабрики ? или фабрика должна быть автономной / устойчивой и полностью независимой?

1 Ответ

1 голос
/ 06 марта 2020

Это не Да или Нет вопрос для меня, так что вот он.

Я думаю, что это нормально, чтобы называть фабрику внутри фабрики , но это не может быть сделано без учета недостатков, которые это может вызвать. Чем глубже цепочка фабрик, тем сложнее зависимость. Кроме того, это может повлиять на удобство обслуживания и тестируемость.

Чтобы избежать конкретной зависимости, вы можете разделить ее, применяя принципы SOLID. Это приведет вас к полностью гибкому и инъекционному заводскому семейству. Но без DI-контейнера это может стать проблемой, а с DI-контейнером следует учитывать и производительность.

Итак, короткий ответ: да , но вам нужно найти баланс между гибкостью, ремонтопригодностью, тестируемостью и производительностью.

Правило большого пальца: Создавайте структуры, если они действительно необходимы, без переобработки.

...