8. 1. DIP(Dependency Inversion Principle)
One might question why I use the word “inversion”. Frankly, it is because
more traditional software development methods, such as Structured
Analysis and Design, tend to create software structures in which high
level modules depend upon low level modules, and in which abstractions
depend upon details. Indeed one of the goals of these methods is to
define the subprogram hierarchy that describes how the high level
modules make calls to the low level modules. ... Thus, the dependency
structure of a well designed object oriented program is “inverted” with
respect to the dependency structure that normally results from
traditional procedural methods.
Robert C Martin's
9. 1. DIP(Dependency Inversion Principle)
One might question why I use the word “inversion”. Frankly, it is because
more traditional software development methods, such as Structured
Analysis and Design, tend to create software structures in which high
level modules depend upon low level modules, and in which abstractions
depend upon details. Indeed one of the goals of these methods is to
define the subprogram hierarchy that describes how the high level
modules make calls to the low level modules. ... Thus, the dependency
structure of a well designed object oriented program is “inverted” with
respect to the dependency structure that normally results from
traditional procedural methods.
Robert C Martin's
20. Note that Dependency Injection (DI) is ONE of the possible implementations to achieve the
Dependency Inversion Principle (DIP)
1. DIP(Dependency Inversion Principle)
Stack overflow: What is meant by 'Inversion' in Dependency inversion