TGViewer
Всё о разработке | Леонид Ченский Всё о разработке | Леонид Ченский @leoscode · 732 subscribers
Post #58 567
2. Билдеры (Builder Pattern)

Билдеры позволяют создать сложные объекты пошагово, обеспечивая читаемость и облегчая управление объектами с множеством параметров.

type House struct {
floors int
color string
garage bool
}

type HouseBuilder struct {
house *House
}

func NewHouseBuilder() *HouseBuilder {
return &HouseBuilder{house: &House{}}
}

func (b *HouseBuilder) SetFloors(floors int) *HouseBuilder {
b.house.floors = floors
return b
}

func (b *HouseBuilder) SetColor(color string) *HouseBuilder {
b.house.color = color
return b
}

func (b *HouseBuilder) SetGarage(garage bool) *HouseBuilder {
b.house.garage = garage
return b
}

func (b *HouseBuilder) Build() *House {
return b.house
}

func main() {
builder := NewHouseBuilder().
SetFloors(2).
SetColor("blue").
SetGarage(true)

house := builder.Build()
fmt.Printf("House: %+v\n", house)
}
  • 🔥 8
  • 👍 5
  • ❤ 2
  • 👏 1
More from @leoscode
  1. Sep 15, 2026Помню как в детстве хотел такого же ассистента как Jarvis у Железного человека. Сейчас буд…
  2. Aug 24, 2026Гипотетическая история Представьте завтра все датацентры «вдруг» перестанут работать. Прив…
  3. Aug 4, 2026"Капризный день"
  4. Jul 17, 2026Пользуюсь случаем, напишу тут: ищу заряжененного Go разработчика к себе в команду. Ссылка…
  5. Jul 14, 2026Утро вторника началось не с кофе… Кто положил, признавайтесь!)
  6. Jul 1, 2026Согласны? 👍 Да 🗿Нет
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →