Какой паттерн реализуют SLF4J и JdbcTemplate по отношению к тому, что они скрывают?
Facade — простой вход в сложную подсистему. SLF4J — Simple Logging Facade for Java. JdbcTemplate скрывает ритуал JDBC: соединение, statement, обработка SQLException, закрытие ресурсов.
- Отличие от адаптера: фасад не подгоняет интерфейс, а скрывает группу классов
- SLF4J одновременно отвязывает код от конкретной реализации логирования
- Фасад не запрещает работать с подсистемой напрямую
А ещё Риск — «божественный» фасад, через который идёт всё
Подробно
SLF4J буквально расшифровывается как Simple Logging Facade for Java. JdbcTemplate прячет ритуал JDBC: открыть соединение, подготовить statement, обработать SQLException, закрыть ресурсы. Отличие от адаптера: фасад не подгоняет один интерфейс под другой, а скрывает целую группу классов за упрощённым входом.
Что хотят услышать
- Название и назначение.
- Отличие от адаптера.
Частые ошибки
- Путать фасад с адаптером: у адаптера есть конкретный целевой интерфейс, под который он подгоняет.
- Считать, что фасад запрещает доступ к подсистеме напрямую — он его лишь упрощает.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Composite — единая работа с деревом и отдельным листом
- ✗Adapter — подгонка одного интерфейса под другой, ожидаемый клиентом
- ✓Facade — простой интерфейс к сложной подсистеме
- ✗Prototype — создание новых объектов копированием образца
Что спросят дальше
- Чем SLF4J ближе к Bridge, чем к простому фасаду?
- Какой паттерн стоит за RowMapper в JdbcTemplate?
Разбор темы
- Структурные паттерны
Adapter, Decorator, Proxy и чем они отличаются друг от друга, Facade, Composite, Bridge и Flyweight — на примерах java.io, java.lang.reflect.Proxy и Spring AOP.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.