引入log4j日志包为何会自动导入额外两个包(门面模式)

引入log4j日志包为何会自动导入额外两个包(门面模式),第1张

引入log4j日志包为何会自动导入额外两个包(门面模式) 一、问题由来

引入如下log4j的包,

会出现这三个依赖

第一个是log4j的底层包,但第二个第三个slf4j是什么呢?为何导入log4j会额外导入了两个包呢?

二、导入额外包的原因

项目中不同的jar包里面很有可能即用到了log4j,又用到了logback日志。这样的话项目就要支持与维护多个日志框架了,很麻烦。  所以怎么同时支持多个日志框架呢? 那就是门面模式

三、门面模式

必须都通过一个入口访问。不同的模块有自己的功能

举一个例子,比如装修房子,我们自己去找和泥工,搬砖工,砌墙工。我一个一个去管理,那么我就浪费大量时间了。

但是,如果我引入包工头,我们把要求给包工头,包工作协调这三个工种做事。

代目如下:

包工头这个类去管理装修房子这些人 。然后Client(我)去把任务交给包工头就行了。

包工头提供建造房子的方法给用户调用就行,用户只用把这个建造房子的要求给包工头,包工头去做自己的逻辑了。   不用用户去指挥了,节约用户时间。 

这里是不是感觉跟代理模式贼像。接下来说下门面模式(外观模式)与代理模式的区别

四、门面模式与代理模式区别

(1条消息) 代理模式和门面模式模式_阿东的博客-CSDN博客_门面模式和代理模式区别

我再总结下:

1.代理模式,一个代理类去接收被代理类的所有东西,从而代理类拥有被代理类的所有。

2.门面模式,门面模式里面多个子模式,根据不同的选择,选择某个子模式进行运行,而不是把所有子模式都拥有,只能选择某些。

 

 

 

 

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5481666.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存