2016-04-03 3 views
3

Я пытаюсь понять детали slf4j. Я все еще не понимаю, как slf4j считается фасадом Logging?Как slf4j фасад?

Намерение фасада является, как правило, -

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

В случае SLF4J обеспечивает общий интерфейс Logger, но каждый обязательный проект как log4j, logback и т.д. необходимо обеспечить их конкретную реализацию.

Так что я понимаю, как подходит adapter pattern, но я все еще не могу понять, как используется Facade Pattern.

ответ

2

Это не фасад на языке уровня, это фасад на приложении уровня. Когда вы пишете свое приложение (или, что еще важнее, библиотеку!), Вы должны каким-то образом регистрировать заявления. Если вы привяжете свой код к конкретной реализации журнала (log4j, logback), будет сложно интегрировать его в другой фрагмент кода, который использует другую реализацию каротажа, потому что вам придется дважды настраивать вещи и, возможно, одно и то же устройство вывода.

Это особенно важно для авторов библиотеки. Таким образом, slf4j вступает в игру: вы заходите в slf4j, а затем разрешаете использовать пользователя библиотеки, предоставляя фактическую запись с помощью соответствующей привязки и конфигурации привязки.

1

SLF4J is не фасад в строгом смысле. Он предоставляет только API для наиболее распространенных методов ведения журнала, общих для большинства фреймворков регистрации, что позволяет пользователю переключаться на другой API, если это необходимо, с относительной легкостью.

Смежные вопросы