一种事后的补救策略。适配器提供跟原始类不同的接口,而代理模式、装饰器模式提供的都是跟原始类相同的接口。 <!-- more --> ## 场景 > Slf4j 的出现晚于 JUL、JCL、log4j 等日志框架,所以,这些日志框架也不可能牺牲掉版本兼容性,将接口改造成符合 Slf4j 接口规范。Slf4j 也事先考虑到了这个问题,所以,它不仅仅提供了统一的接口定义,还提供了针对不同日志框架的适配器。对不同日志框架的接口进行二次封装,适配成统一的 Slf4j 接口定义 ## 适配器与门面模式的区别 Slf4j 同时用了门面模式和适配器模式 Slf4j 对于我们使用者来说,是一个门面。但是它之所以能底层可以用 log4j,logback 等的任何一个,是因为它内部实现了适配器。 JsonUtil 内部组合了 objectMapper ![image.png|1000](https://imagehosting4picgo.oss-cn-beijing.aliyuncs.com/imagehosting/fix-dir%2Fpicgo%2Fpicgo-clipboard-images%2F2024%2F05%2F10%2F11-58-19-e92821fd4ee11a90cc12dccb582f00e5-20240510115818-e75fad.png) ![image.png|1000](https://imagehosting4picgo.oss-cn-beijing.aliyuncs.com/imagehosting/fix-dir%2Fpicgo%2Fpicgo-clipboard-images%2F2024%2F05%2F10%2F11-57-32-a6f2543a6b685a67b5cdb875be08085f-20240510115731-4bf41d.png)