Для учебной модели добавьте обёртку над существующим объектом лифта: перед делегированием команды движения она проверяет закрытие дверей. Если двери открыты или состояние неизвестно, движение отклоняется.
Не изменяя существующий класс и команды лифта, добавьте безопасное перемещение: перед движением нужно убедиться, что двери закрыты.
Для учебной модели добавьте обёртку над существующим объектом лифта: перед делегированием команды движения она проверяет закрытие дверей. Если двери открыты или состояние неизвестно, движение отклоняется.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для учебной модели добавьте обёртку над существующим объектом лифта: перед делегированием команды движения она проверяет закрытие дверей. Если двери открыты или состояние неизвестно, движение отклоняется.
Такой Proxy или Decorator сохраняет внешний интерфейс и не требует менять исходный класс. Все команды движения должны проходить через обёртку; обходной прямой доступ разрушает гарантию. Проверка и запуск должны быть согласованы, иначе дверь может открыться между ними. Конкретный код зависит от неприведённого API лифта. Для реального оборудования программная обёртка не заменяет аппаратные блокировки и инженерную проверку безопасности.