Ответ
В Go часто используют следующие паттерны:
- Singleton - гарантирует единственный экземпляр:
type singleton struct{}
var instance *singleton
var once sync.Once
func GetInstance() *singleton {
once.Do(func() {
instance = &singleton{}
})
return instance
}
- Factory - создание объектов без указания конкретного типа:
type Product interface {
Use() string
}
func NewProduct(t string) Product {
switch t {
case "A": return &ConcreteProductA{}
case "B": return &ConcreteProductB{}
}
return nil
}
- Decorator - добавление функциональности:
type Component interface {
Operation() string
}
type Decorator struct {
component Component
}
func (d *Decorator) Operation() string {
return "Decorated " + d.component.Operation()
}
- Observer - подписка на события:
type Observer interface {
Update(string)
}
type Subject struct {
observers []Observer
}
func (s *Subject) Notify(msg string) {
for _, o := range s.observers {
o.Update(msg)
}
}
Также часто применяются: Strategy, Adapter, Facade, Builder. В Go многие паттерны реализуются проще благодаря интерфейсам и замыканиям.
Видео-ответы
▶
Собеседование Python developer на 4000$
▶
PHP Senior: Онлайн-собеседование
▶
Мок-собеседование по Java: разбор вопросов, паттерны, алгоритмы и лайвкодинг
▶
Мок-собеседование по Java: разбор вопросов, паттерны, алгоритмы и лайвкодинг
▶
Собеседование Middle Frontend-разработчика + Live Coding | JS, Typescript, React, FSD, Next.js
▶
Студент удивил своими знаниями и прошел собес на Middle Python разработчика!
▶
Успешное собеседование Middle Java в холдинг T1
▶
Открытое собеседование в МТС Диджитал на позицию Middle Java
▶
РЕАЛЬНОЕ СОБЕСЕДОВАНИЕ НА MIDDLE FRONTEND РАЗРАБОТЧИКА | JAVASCRIPT REACT
▶
Мок интервью для Романа на должность DevOps инженера
▶
Пробное Middle C# собеседование (мок-интервью)
▶
Собеседование на Middle PHP разработчика
▶
Собеседование на Middle PHP разработчика
▶
Собеседование Middle Android разработчика
▶
Собеседование Middle PHP разработчика
▶
Собеседование Middle Python Developer на $2000 #6
▶
Техническое собеседование Java Developer | ТОП вопросов за 90 минут | от ООП до микросервисов
▶
Интервью c Java-разработчиком из X5: теория(паттерны проектирования, Exception Handler), live-кодинг
▶
Интервью c Java-разработчиком из X5: теория(паттерны проектирования, Exception Handler), live-кодинг
▶
Собеседование на Java-разработчика, вопросы для подготовки: finalize method, ArrayList, REST и SOAP
▶
Собеседование junior python разработчик Антон Серебряков
▶
Junior Python-инженер | Собеседование
▶
Проверяем знания перед реальными собеседованиями | Техническое собеседование Java Kotlin | Jetbulb
▶
Тестовое собеседование на позицию PHP-разработчика
▶
Тест Собес на Андроид Разработчика Java Kotlin Compose Android Devoloper interview Собеседование
▶
Собеседование в Яндекс. Платформа Android
▶
Mock-собеседование на позицию Java Developer | Идеальный кандидат
▶
Mock собеседование на позицию Java Junior Developer #3