Скажем, у вас есть класс Customer, который содержит следующие поля:
- UserName
- Имя
- Фамилия
Предположим также, что в соответствии с вашей бизнес-логикой все объекты Customer должны иметь эти четыре свойства.
Теперь мы можем сделать это довольно легко, заставив конструктор указать каждое из этих свойств. Но довольно легко понять, как это может вырваться из-под контроля, когда вы вынуждены добавлять дополнительные объекты к объекту Customer.
Я видел классы, которые принимают более 20 аргументов в свой конструктор, и это просто боль, чтобы их использовать. Но, в качестве альтернативы, если вы не требуете этих полей, вы рискуете иметь undefined информацию или, что еще хуже, объекты, ссылающиеся на ошибки, если вы полагаетесь на вызывающий код, чтобы указать эти свойства.
Есть ли альтернативы этому или вам просто нужно решить, слишком ли много аргументов X аргументов конструктора для вас?