2016-04-03 20 views
3

我想了解slf4j的細節。我仍然不清楚slf4j如何被認爲是一個Logging門面?slf4j是一個立面?

門面的目的是典型地 -

提供一個統一的接口子系統中的一組接口。 Facade定義了一個更高級別的界面,使得子系統更易於使用。

在SLF4J的情況下,它提供了一個通用接口Logger,但像log4j, logback等各結合項目需要提供自己的具體落實。

所以我明白adapter pattern如何適應,但我仍不能理解如何使用Facade Pattern

回答

2

這不是在語言級別的外觀,它是在應用級外觀。當你編寫你的應用程序(或者更重要的是一個庫)時,你必須以某種方式記錄語句。如果你將你的代碼綁定到特定的日誌實現(log4j,logback),那麼很難將它集成到使用另一個日誌實現的另一段代碼中,因爲你必須配置兩次,可能不能共享相同的輸出設備。

這對圖書館作者尤其重要。所以slf4j發揮作用:你登錄到slf4j,然後讓庫的用戶通過適當的綁定和綁定配置提供實際的日誌記錄機制。

1

SLF4J是不是嚴格意義上的立面。它僅爲大多數日誌記錄框架共享的最常見日誌記錄方法提供了一個API,允許用戶在相對容易的情況下切換到不同的API。

相關問題