Какие знаешь паттерны ООП

Python Senior Без компании
Какие знаешь паттерны ООП
Ответы
В Python часто используются следующие паттерны ООП: - **Singleton** – гарантирует единственный экземпляр класса. ``` class Singleton: _instance = None def __new__(cls): if cls._instance is None: cls._instance = super().__new__(cls) return cls._instance ``` - **Фабричный метод** – делегирует создание объектов подклассам. ``` class Creator: def factory_method(self): raise NotImplementedError class ConcreteCreator(Creator): def factory_method(self): return ConcreteProduct() class Product: pass class ConcreteProduct(Product): pass ``` - **Наблюдатель** – уведомляет подписчиков об изменениях. ``` class Subject: def __init__(self): self._observers = [] def attach(self, observer): self._observers.append(observer) def notify(self): for observer in self._observers: observer.update(self) ``` - **Декоратор** – добавляет поведение объектам динамически. ``` def decorator(func): def wrapper(*args, **kwargs): print("Доп. логика до вызова") result = func(*args, **kwargs) print("Доп. логика после вызова") return result return wrapper ``` Также популярны: **Адаптер**, **Стратегия**, **Фасад**, **Команда**.