tgoop.com/golang_digest/61
Create:
Last Update:
Last Update:
Options vs Builder Pattern
https://medium.com/@MTrax/golang-options-vs-builder-pattern-4123bfcc3c5c
Автор статьи рассматривает два паттерна для создания сложных объектов с опциональными параметрами - Options Pattern и Builder Pattern, их преимущества, недостатки и примеры реализации.
Options Pattern
Пример использования:
pizza := NewPizza(Плюсы:
WithDough("Regular"),
WithSauce("Tomato"),
WithCheese("Mozzarella"),
WithToppings([]string{"Pepperoni", "Olives", "Mushrooms"}),
)
- Легкость использования
- Читаемость кода
- Более краткий и компактный код
Минусы:
- Может стать громоздким в использовании
- Меньше гибкость
Builder Pattern
Пример использования:
builder := NewConcretePizzaBuilder()Метод Construct:
director := NewDirector(builder)
pizza := director.Construct()
func (d *Director) Construct() *Pizza {Плюсы:
return d.builder.
SetDough("Thin Crust").
SetSauce("Tomato").
SetCheese("Mozzarella").
SetToppings([]string{"Mushrooms", "Olives", "Onions"}).
Build()
}
- Четкое разделение конструкции объекта от его представления
- Гибкость: позволяет создавать разные представления объекта с одним процессом конструкции
- Легко добавлять новые параметры
Минусы:
- Более более сложная и многословная реализация
- Больше абстракций
- Может быть избыточным
————
Как обычно, выбор между Options и Builder зависит от специфических потребностей вашего проекта
#golang #patterns #english
BY Golang Дайджест

Share with your friend now:
tgoop.com/golang_digest/61