Запитання з тегом «builder-pattern»

1
Чи "StringBuilder" є програмою дизайну дизайнера Builder?
Чи обмежений шаблон "Будівельника" адресацією "конструктора телескопічного" антитіл, чи можна сказати, що він також вирішує більш загальну проблему складного створення незмінних об'єктів? StringBuilderКлас має слово «будівельник» в його назві, але це не має нічого спільного з телескопічними конструкторами, він просто допомагає нам зібрати всі дані , які ми повинні передати …

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

8
Як я можу сприяти використанню шаблону Builder у своїй команді?
У нашій кодовій базі є старі, і нові програмісти, як я, швидко вчаться робити це так, як це робиться заради рівномірності. Думаючи, що нам треба десь почати, я взяв на себе рефакторинг класу власника даних як такого: Видалили методи сеттера і зробили всі поля final(я беру " finalдобре" аксіоматично). Як …

3
Конструктор з тоннами параметрів проти малюнка будівельника
Добре відомо, що якщо у вашому класі є конструктор з багатьма параметрами, скажімо, більше 4, то це, швидше за все, кодовий запах . Вам потрібно переглянути, якщо клас задовольняє SRP . Але що робити, якщо ми побудуємо і об'єктуємо, що залежить від 10 або більше параметрів, і, врешті-решт, встановимо всі …

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

4
Чи замінені названі аргументи замінюють модель конструктора?
Чи використовує мову, яка підтримує іменовані та необов'язкові аргументи, модель для розробника вже не має практичного використання? Builder: new Builder(requiredA, requiredB).setOptionalA("optional").Build(); Необов’язкові / названі аргументи: new Object(requiredA, requiredB, optionalA: "optional");

4
Java: Як реалізувати побудову кроків, для яких порядок встановлення не має значення?
Редагувати: Я хотів би зазначити, що це питання описує теоретичну проблему, і я знаю, що я можу використовувати аргументи конструктора для обов’язкових параметрів або викинути виняток з виконання, якщо API використовується неправильно. Однак я шукаю рішення, яке не вимагає конструкторських аргументів або перевірки часу виконання. Уявіть, у вас такий Carінтерфейс: …

3
Чи є сенс використовувати будівельники та інтерфейси флюїду з ініціалізаторами об'єктів?
У Java та C # ви можете створити об’єкт із властивостями, які можна встановити при ініціалізації, або визначивши конструктор з параметрами, визначивши кожну властивість після побудови об'єкта, або використовуючи шаблон інтерфейсу будівельника та флюїду. Однак C # 3 представив ініціалізатори об'єктів та колекцій, що означало, що модель побудови була багато …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.