Получить доступ

Какой паттерн реализуют SLF4J и JdbcTemplate по отношению к тому, что они скрывают?

MiddleПаттерны проектирования
Коротко

Facade — простой вход в сложную подсистему. SLF4J — Simple Logging Facade for Java. JdbcTemplate скрывает ритуал JDBC: соединение, statement, обработка SQLException, закрытие ресурсов.

  • Отличие от адаптера: фасад не подгоняет интерфейс, а скрывает группу классов
  • SLF4J одновременно отвязывает код от конкретной реализации логирования
  • Фасад не запрещает работать с подсистемой напрямую

А ещё Риск — «божественный» фасад, через который идёт всё

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

SLF4J буквально расшифровывается как Simple Logging Facade for Java. JdbcTemplate прячет ритуал JDBC: открыть соединение, подготовить statement, обработать SQLException, закрыть ресурсы. Отличие от адаптера: фасад не подгоняет один интерфейс под другой, а скрывает целую группу классов за упрощённым входом.

Что хотят услышать

  • Название и назначение.
  • Отличие от адаптера.

Частые ошибки

  • Путать фасад с адаптером: у адаптера есть конкретный целевой интерфейс, под который он подгоняет.
  • Считать, что фасад запрещает доступ к подсистеме напрямую — он его лишь упрощает.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓Facade — простой интерфейс к сложной подсистеме
  • ✗Adapter — подгонка одного интерфейса под другой
  • ✗Composite — единая работа с деревом и листом
  • ✗Prototype — создание объектов копированием

Что спросят дальше

  • Чем SLF4J ближе к Bridge, чем к простому фасаду?
  • Какой паттерн стоит за RowMapper в JdbcTemplate?

Разбор темы

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем