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

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

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

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

python
class CPU:
    def execute(self): pass

class Memory:
    def load(self): pass

class ComputerFacade:
def init(self):
self.cpu = CPU()
self.memory = Memory()

text
def start(self):
    self.memory.load()
    self.cpu.execute()
text

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

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

Ключевое отличие: фасад упрощает, адаптер — преобразует. Фасад работает с целой подсистемой, адаптер — с конкретным интерфейсом.

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

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

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

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