依赖倒转原则讲的是:要依赖于抽象,不要依赖于具体。
[img]http://dl.iteye.com/upload/attachment/431928/896d98a6-713c-36bd-9407-b58d166ebbaa.png[/img]
从复用的角度来看,高层次的模块是设计者应当服用的。但是在传统的过程性的设计中,复用却侧重于具体层次模块的复用,比如算法的复用、数据结构的复用等,都不可避免是具体层次模块里的复用。较高层次的结构依赖于较低层次的结构,较低层次的结构又进一步依赖于更低层次的结构,如此继续,直到依赖于每一行的代码。较低层次上的修改,会造成较高层次的修改,直到高层次逻辑的修改。
[b]依赖倒转原则(Dependence Inversion Principle)的表述[/b]是:
抽象不应当依赖于细节,细节应当依赖于抽象。(Abstractions should not depend upon details.Details should depend upon abstractions)
另一种表述:
要针对接口编程,不要针对实现编程。(Program to an interface, not an implementaction)
[img]http://dl.iteye.com/upload/attachment/431928/896d98a6-713c-36bd-9407-b58d166ebbaa.png[/img]
从复用的角度来看,高层次的模块是设计者应当服用的。但是在传统的过程性的设计中,复用却侧重于具体层次模块的复用,比如算法的复用、数据结构的复用等,都不可避免是具体层次模块里的复用。较高层次的结构依赖于较低层次的结构,较低层次的结构又进一步依赖于更低层次的结构,如此继续,直到依赖于每一行的代码。较低层次上的修改,会造成较高层次的修改,直到高层次逻辑的修改。
[b]依赖倒转原则(Dependence Inversion Principle)的表述[/b]是:
抽象不应当依赖于细节,细节应当依赖于抽象。(Abstractions should not depend upon details.Details should depend upon abstractions)
另一种表述:
要针对接口编程,不要针对实现编程。(Program to an interface, not an implementaction)