> Какие группы паттернов проектирования существуют (Go)

Уровень: senior · Роль: backend · Язык: Go · Категория: Технические вопросы

Компании: Wildberries

Стек: Go

> Пример ответа

В объектно-ориентированном программировании выделяют три основные группы паттернов проектирования, которые применяются и в Go (с учетом его идиом):

  1. Порождающие (Creational) - отвечают за создание объектов, скрывая логику инстанцирования. В Go часто реализуются через функции-конструкторы (например, New()), а также паттерны: Singleton (через sync.Once), Factory Method, Builder (с цепочкой методов), Prototype (копирование через Clone()).

  2. Структурные (Structural) - описывают способы сборки объектов и классов в более крупные структуры. Примеры в Go: Adapter (через интерфейсы и обертки), Composite (для древовидных структур), Decorator (оборачивание функций или структур), Facade (упрощенный интерфейс к сложной подсистеме).

  3. Поведенческие (Behavioral) - определяют алгоритмы и распределение ответственности между объектами. В Go популярны: Strategy (передача функции или интерфейса), Observer (через каналы или колбэки), Command (инкапсуляция запроса), Iterator (использование range и каналов).

В Go, из-за отсутствия классического наследования, паттерны адаптируются под композицию и интерфейсы, но базовая классификация остается универсальной.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью