В моей практике часто использую Фабричный метод для создания объектов по заданным критериям, Строитель для пошагового конструирования сложных объектов, Одиночку для уникальных экземпляров, Адаптер для совместимости интерфейсов, Декоратор для расширения функциональности, Фасад для упрощения интерфейса подсистемы, Наблюдатель для реализации реактивных систем и Стратегию для выбора алгоритма.
Пример паттерна "Фабричный метод" в Golang:
go
Пример паттерна "Декоратор" в Golang:
go
Важно не просто знать паттерны, но и понимать, когда их применять, чтобы решение было оптимальным и поддерживаемым.