Какие дизайн паттерны знаешь

Python Senior Без компании
Какие дизайн паттерны знаешь
Ответы
В Python часто используются следующие паттерны: **1. Singleton** – гарантирует единственный экземпляр класса: ``` class Singleton: _instance = None def __new__(cls): if not cls._instance: cls._instance = super().__new__(cls) return cls._instance ``` **2. Factory Method** – делегирует создание объектов подклассам: ``` class Button: def render(self): pass class WindowsButton(Button): def render(self): return "Windows style" class Dialog: def create_button(self) -> Button: pass class WindowsDialog(Dialog): def create_button(self) -> Button: return WindowsButton() ``` **3. Observer** – уведомляет подписчиков об изменениях: ``` 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) ``` Также популярны **Decorator**, **Strategy**, **Adapter**, **Facade**, **Proxy**. Паттерны решают типовые задачи проектирования, но важно не злоупотреблять ими без необходимости.