Встречается на собеседованиях • сегодня

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

Фасад и адаптер — структурные паттерны, но решают разные задачи:

Фасад упрощает работу со сложной системой, предоставляя удобный интерфейс для клиента. Он не меняет существующую функциональность, а лишь объединяет вызовы.

python
class Engine:
    def start(self): pass

class AC:
    def turn_on(self): pass

class CarFacade:
def init(self):
self.engine = Engine()
self.ac = AC()

text
def start_car(self):
    self.engine.start()
    self.ac.turn_on()
text

**Адаптер** преобразует интерфейс одного класса в интерфейс, ожидаемый клиентом. Используется, когда нужно совместить несовместимые интерфейсы.

```python
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

Фасад — упрощение, адаптер — совместимость. Фасад работает с целой подсистемой, адаптер — с одним классом.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы