一、问题由来
引入如下log4j的包,
会出现这三个依赖
第一个是log4j的底层包,但第二个第三个slf4j是什么呢?为何导入log4j会额外导入了两个包呢?
二、导入额外包的原因
项目中不同的jar包里面很有可能即用到了log4j,又用到了logback日志。这样的话项目就要支持与维护多个日志框架了,很麻烦。 所以怎么同时支持多个日志框架呢? 那就是门面模式
三、门面模式
必须都通过一个入口访问。不同的模块有自己的功能
举一个例子,比如装修房子,我们自己去找和泥工,搬砖工,砌墙工。我一个一个去管理,那么我就浪费大量时间了。
但是,如果我引入包工头,我们把要求给包工头,包工作协调这三个工种做事。
代目如下:
包工头这个类去管理装修房子这些人 。然后Client(我)去把任务交给包工头就行了。
包工头提供建造房子的方法给用户调用就行,用户只用把这个建造房子的要求给包工头,包工头去做自己的逻辑了。 不用用户去指挥了,节约用户时间。
这里是不是感觉跟代理模式贼像。接下来说下门面模式(外观模式)与代理模式的区别
四、门面模式与代理模式区别
(1条消息) 代理模式和门面模式模式_阿东的博客-CSDN博客_门面模式和代理模式区别
我再总结下:
1.代理模式,一个代理类去接收被代理类的所有东西,从而代理类拥有被代理类的所有。
2.门面模式,门面模式里面多个子模式,根据不同的选择,选择某个子模式进行运行,而不是把所有子模式都拥有,只能选择某些。