slf4j是一个门面设计模式吗?

9
我正在尝试理解slf4j的细节。我仍然不清楚slf4j如何被视为一个日志门面?
门面的目的通常是 -
提供子系统接口集的统一接口。门面定义了一个更高级别的接口,使子系统更易于使用。
在slf4j的情况下,它提供了一个通用的Logger接口,但每个绑定项目如log4j、logback等都需要提供它们的具体实现。
因此,我理解适配器模式的运用,但我仍然无法理解门面模式的使用。
2个回答

7

这不是在语言层面上的界面,而是在应用程序层面上的界面。当您编写应用程序(或者更重要的是库!)时,必须以某种方式记录日志语句。如果将代码与特定的日志实现(log4j、logback)绑定,则很难将其集成到使用另一个日志实现的其他代码中,因为您将需要两次配置设备并且可能无法共享相同的输出设备。

对于库作者来说,这尤其重要。因此,slf4j就派上用场了:您可以记录到slf4j,然后让库的用户通过适当的绑定和绑定配置来提供实际的日志记录机制。


3

SLF4J并不是严格意义上的门面模式。它只提供了一个API来支持大多数日志框架所共有的最常见的日志方法,使用户可以在需要时相对容易地切换到不同的API。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接