DIP
Page content
[TOC]
Brief introduction about DIP.
依赖倒转原则 DIP
定义
抽象不应该依赖细节,细节应该依赖于抽象。
高层模块不应该依赖于低层模块,两个都应该依赖于抽象。
说白了就是针对接口编程,不要对实现编程。
类图
用例
具体见代码 code example
注意
什么是控制反转 Inversion Of Control
把程序控制权交给第三方。
什么是依赖注入 Dependency Injection
不通过 new() 的方式在类内部创建依赖类对象, 而是将依赖的类对象在外部创建好之后,通过构造函数、函数参数等方式传递(或注入)给类使用。
依赖注入框架 和 控制反转容器
例如 Spring 框架
小结
-
控制反转是一种编程思想,把控制权交给第三方。依赖注入是实现控制反转最典型的方法。
-
依赖注入(对象)的方式要采用“基于接口而非实现编程”的原则,说白了就是依赖倒转。
-
底层的实现要符合里氏替换原则。子类的可替换性,使得父类模块或依赖于抽象的高层模块无需修改,实现程序的可扩展性。
参考
《大话设计模式》