В чем разница между фасадом и адаптером
Python
Middle
Вкусно и точка
В чем разница между фасадом и адаптером
Ответы
Фасад и адаптер — оба являются структурными паттернами, но решают разные задачи:
**Фасад** упрощает работу со сложной системой, предоставляя удобный интерфейс. Он не изменяет существующие интерфейсы, а лишь объединяет их вызовы.
```
class CPU:
def execute(self): pass
class Memory:
def load(self): pass
class ComputerFacade:
def __init__(self):
self.cpu = CPU()
self.memory = Memory()
def start(self):
self.memory.load()
self.cpu.execute()
```
**Адаптер** же преобразует один интерфейс в другой, чтобы позволить работать несовместимым классам вместе:
```
class EuropeanSocket:
def voltage(self): return 230
class USPlug:
def power(self): return 120
class Adapter(USPlug):
def __init__(self, socket):
self.socket = socket
def power(self):
return self.socket.voltage() / 2
```
Ключевое отличие: фасад упрощает, адаптер — преобразует. Фасад работает с целой подсистемой, адаптер — с конкретным интерфейсом.