举个场景:假如spring框架的日志系统使用了log4j实现,你的项目依赖于spring,那么你就需要引入Log4j这个日志框架,并且维护这么一份日志框架配置文件。类似的其他的第三方依赖包如果直接用固定的日志系统如logback实现日志系统。如果你依赖了它的话,你就需要引入并维护改日志系统。
那么,如何解决这个问题呢?这个时候我们需要定制一份规范。定制一套日志接口。让所有编写日志框架的人都遵守这个接口规范。这样我们只需要依赖于这个日志规范接口,而不使用固定的日志框架进行日志记录。这样我们就不用关心依赖的组件的日志系统了,因为大家都是基于接口编程的,底部的日志实现可以随意的切换。