> Какие шаблоны проектирования часто используются (Go, Java)
Уровень: middle · Роль: backend · Категория: Технические вопросы
Компании: YADRO
Стек: Go, Java
> Пример ответа
В Go, в отличие от Java, нет классической ООП-иерархии, поэтому многие шаблоны реализуются через композицию и интерфейсы. Чаще всего используются:
-
Функциональные опции (Functional Options) - замена билдеру и перегруженным конструкторам. Позволяет гибко настраивать объекты без множества сигнатур.
Пример:NewServer(opts ...Option). -
Одиночка (Singleton) - через
sync.Onceдля ленивой инициализации, особенно для конфигов или пулов соединений. -
Фабрика (Factory) - в Go часто заменяется простыми функциями-конструкторами, но при сложной логике создания объектов используется интерфейс
Factory. -
Стратегия (Strategy) - через интерфейсы и передачу поведения как аргумента (например, сортировка с разными компараторами).
-
Посетитель (Visitor) - реже, но полезен для обхода структур (например, AST) без изменения их кода.
В Java к этому добавляются Абстрактная фабрика, Декоратор (через обёртки), Наблюдатель (через event listeners) и Шаблонный метод (через абстрактные классы). Однако в Go из-за отсутствия наследования шаблонный метод реализуется через композицию и колбэки.
> Похожие задачи по backend
Какие инструменты DRF и Django использовать для реализации бизнес-логики сохранения заказа?
Был ли опыт работы с MongoDB или аналогичными документно-ориентированными базами данных
Что такое JWT и как он работает
Можно ли указать кастомный заголовок в HTTP запросе
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью