Вопросы с тегом «builder-pattern»

9
Зачем нам нужен класс Builder при реализации шаблона Builder?
Я видел много реализаций шаблона Builder (в основном на Java). Все они имеют класс сущности (скажем, Personкласс) и класс строителя PersonBuilder. Конструктор "складывает" различные поля и возвращает a new Personс переданными аргументами. Зачем нам явно нужен класс построителя вместо того, чтобы помещать все методы построителя в сам Personкласс? Например: class …

1
Является ли «StringBuilder» приложением шаблона проектирования Builder?
Ограничен ли шаблон «Строитель» обращением к анти-шаблону «телескопический конструктор», или можно сказать, что он также решает более общую проблему сложного создания неизменяемых объектов? У StringBuilderкласса есть слово «строитель» в его имени, но он не имеет ничего общего с телескопическими конструкторами, он просто помогает нам собрать все данные, которые нам нужно …

8
Как я могу продвигать использование шаблона Builder в моей команде?
Наша кодовая база устарела, и новые программисты, как и я, быстро учатся делать это так, как это делается для единообразия. Думая, что мы должны с чего-то начать, я взял на себя реорганизацию класса держателей данных как такового: Удалил методы установки и сделал все поля final(я беру " finalхорошо" аксиоматически). Как …

3
Конструктор с множеством параметров в сравнении с шаблоном
Хорошо известно, что если в вашем классе есть конструктор с множеством параметров, скажем, больше 4, то это, скорее всего, запах кода . Вам нужно пересмотреть, удовлетворяет ли класс SRP . Но что если мы создадим объект, который зависит от 10 или более параметров, и в конечном итоге закончим настройкой всех …

5
Почему тип связан с его строителем?
Недавно я удалил свой Java- ответ на Code Review , который начался так: private Person(PersonBuilder builder) { Стоп. Красный флаг. PersonBuilder будет строить Person; это знает о Человеке. Класс Person не должен ничего знать о PersonBuilder - это просто неизменный тип. Вы создали круговую связь здесь, где A зависит от …

4
Заменяют ли именованные аргументы шаблон построителя?
При использовании языка, который поддерживает именованные и необязательные аргументы, шаблон компоновщика больше не имеет практического применения? Строитель: new Builder(requiredA, requiredB).setOptionalA("optional").Build(); Необязательные / именованные аргументы: new Object(requiredA, requiredB, optionalA: "optional");

4
Java: Как реализовать пошаговый конструктор, для которого порядок установки не имеет значения?
Изменить: я хотел бы отметить, что этот вопрос описывает теоретическую проблему, и я знаю, что я могу использовать аргументы конструктора для обязательных параметров, или вызвать исключение времени выполнения, если API используется неправильно. Однако я ищу решение, которое не требует аргументов конструктора или проверки во время выполнения. Представьте, что у вас …

3
Есть ли смысл использовать компоновщики и текучие интерфейсы с инициализаторами объектов?
В Java и C # вы можете создать объект со свойствами, которые можно установить при инициализации, либо определив конструктор с параметрами, определив каждое свойство после создания объекта, либо используя шаблон интерфейса Builder / Fluid. Однако в C # 3 были введены инициализаторы объектов и коллекций, что означало, что шаблон компоновщика …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.