Какие знаешь структурные паттерны проектирования
Python
Middle
Без компании
Какие знаешь структурные паттерны проектирования
Ответы
Структурные паттерны проектирования помогают организовать классы и объекты в более крупные структуры, сохраняя гибкость и эффективность.
**Адаптер (Adapter)** – преобразует интерфейс класса в другой интерфейс, ожидаемый клиентом.
```
class Target:
def request(self):
return "Target behavior"
class Adaptee:
def specific_request(self):
return "Adaptee behavior"
class Adapter(Target):
def __init__(self, adaptee):
self.adaptee = adaptee
def request(self):
return f"Adapter: {self.adaptee.specific_request()}"
```
**Декоратор (Decorator)** – динамически добавляет объекту новую функциональность.
```
class Component:
def operation(self):
return "Component"
class Decorator(Component):
def __init__(self, component):
self._component = component
def operation(self):
return f"Decorator({self._component.operation()})"
```
**Фасад (Facade)** – предоставляет упрощенный интерфейс к сложной подсистеме.
**Компоновщик (Composite)** – группирует объекты в древовидные структуры.
**Заместитель (Proxy)** – контролирует доступ к объекту, добавляя дополнительную логику.
**Мост (Bridge)** – разделяет абстракцию и реализацию, позволяя им изменяться независимо.
**Приспособленец (Flyweight)** – экономит память, разделяя общее состояние между объектами.