在C++中,没有事实上的标准日志记录工具.根据我的经验,商店自己动手.但是,在尝试创建可重用的软件组件时,这会产生一些问题.如果系统中的所有内容都依赖于日志记录组件,这会使软件不再可重用,基本上迫使任何下游项目将您的日志记录框架与他们真正想要的组件一起使用.
IOC(依赖注入)并不能真正帮助解决问题,因为组件需要依赖于日志记录抽象.记录组件本身可以添加对文件I/O,触发机制和其他可能不需要的依赖项的依赖性.
向专有日志记录框架添加依赖项是否会牺牲组件的可重用性?
是.但在这种情况下,依赖注入将有所帮助.
您可以创建抽象日志记录基类,并为要使用的日志记录框架创建实现.您的组件仅依赖于抽象基类.然后根据需要将实现与其依赖项一起注入.