什么是依赖反转原则,为什么它很重要?
检查此文档:
The Dependency Inversion Principle。
它基本上说:
>高级模块不应该依赖于低级模块。两者都应该依赖于抽象。
>抽象不应该依赖于细节。细节应该取决于抽象。
至于为什么它很重要,简而言之:变化是有风险的,并且通过依赖于一个概念而不是一个实现,您减少了在呼叫站点的变化的需要。
有效地,DIP减少了不同代码段之间的耦合。这个想法是,虽然有很多方法来实现,比如说,一个日志记录工具,你使用它的方式应该是相对稳定的。如果你可以提取一个代表日志记录概念的接口,这个接口应该比它的实现在时间上更加稳定,并且调用站点应该在保持或扩展该日志记录机制时更少地受到更改的影响。
通过使实现依赖于接口,您可以在运行时选择哪种实现更适合您的特定环境。根据情况,这可能也很有趣。