В чем разница фасада и адаптера

Python Middle Без компании
В чем разница фасада и адаптера
Ответы
Фасад и адаптер — структурные паттерны, но решают разные задачи: **Фасад** упрощает работу со сложной системой, предоставляя удобный интерфейс для клиента. Он не меняет существующую функциональность, а лишь объединяет вызовы. ``` class Engine: def start(self): pass class AC: def turn_on(self): pass class CarFacade: def __init__(self): self.engine = Engine() self.ac = AC() def start_car(self): self.engine.start() self.ac.turn_on() ``` **Адаптер** преобразует интерфейс одного класса в интерфейс, ожидаемый клиентом. Используется, когда нужно совместить несовместимые интерфейсы. ``` class EuropeanSocket: def voltage(self): return 220 class USPlug: def need_120v(self): pass class Adapter(USPlug): def __init__(self, socket): self.socket = socket def need_120v(self): return self.socket.voltage() / 2 ``` Фасад — упрощение, адаптер — совместимость. Фасад работает с целой подсистемой, адаптер — с одним классом.