Какие паттерны проектирования из GoF использовались на проектах
Python
Middle
Без компании
Какие паттерны проектирования из GoF использовались на проектах
Ответы
В Python часто применяются следующие паттерны из GoF:
**Singleton** - для создания единственного экземпляра класса (например, логгер, конфиг):
```
class Singleton:
_instance = None
def __new__(cls):
if cls._instance is None:
cls._instance = super().__new__(cls)
return cls._instance
```
**Factory Method** - для создания объектов без указания конкретного класса:
```
class ButtonFactory:
def create_button(self, type_):
if type_ == "windows":
return WindowsButton()
elif type_ == "mac":
return MacButton()
```
**Observer** - для подписки и уведомлений о событиях:
```
class Subject:
def __init__(self):
self._observers = []
def notify(self):
for observer in self._observers:
observer.update(self)
```
Также часто используются:
- **Decorator** (@decorator синтаксис)
- **Adapter** (интеграция разных интерфейсов)
- **Strategy** (переключение алгоритмов)
Выбор зависит от задачи - в веб-разработке чаще Factory/Decorator, в GUI - Observer, в инфраструктуре - Singleton.