Шаблон проектирования для создания объекта

Я хочу создать объект, который будет создан на основе нескольких других объектов. Я хочу использовать шаблон Builder , но сомневаюсь. Я вижу, что все примеры для шаблона Builder показывают, что у Builder есть простые методы (например, withName (), withSurname () и т. Д.). Каждый из этих методов назначает входной параметр полю в построителе. Затем метод build () создает целевой объект.

Я хочу использовать более сложные объекты в качестве параметров для этих методов. В некоторых из этих методов у меня будет более сложная логика для создания значения поля, которое будет назначено в построителе.

Подходит ли для этого шаблон строителя? Могут ли методы компоновщика иметь более сложную логику? Стоит ли использовать другой шаблон проектирования?


person John Smith    schedule 14.06.2017    source источник
comment
IIRC, мотивация шаблона построителя состоит в том, чтобы избежать раздутых конструкторов с множеством параметров и множеством перегруженных конструкторов. Я не думаю, что сложность методов конструктора обязательно должна быть ограничена простыми назначениями. Тем не менее, я бы сравнил строителя с заводом и посмотрел, какой из них лучше подходит.   -  person David Osborne    schedule 15.06.2017
comment
Это может быть полезно stackoverflow.com/questions/757743/   -  person Gayan Dasanayake    schedule 16.06.2017


Ответы (1)


Программирование - это не следование шаблонам T. Если стандартные шаблоны не подходят, сделайте свои собственные. Они служат ориентирами, поскольку демонстрируют хорошо протестированный дизайн.

В этом случае у вас могут быть сложные методы, если они необходимы, я видел такие конструкторы раньше.

person Neil Locketz    schedule 15.06.2017