回答
AFAIK依赖注入不是一种设计模式但在SOLID principles定义的设计方针。
所以Bridge模式使用依赖注入在它达到所需的多态行为,其中DrawingAPI
在构造函数中被注入从具体实施API的解耦Shape
。
protected Shape(DrawingAPI drawingAPI){
this.drawingAPI = drawingAPI;
}
Bridge模式的例子 - 设计模式
依赖注入 - 设计准则或原则
我同意你说的,但是当我从Wiki中读取定义时,它说“依赖注入是一种实现软件库控制反转的软件设计模式”,所以你认为术语“设计模式”是错误的或者它是正确的一种观点? – fmchan
@fmchan恕我直言,依赖注入是一种原则而不是设计模式。它构成了许多GoF设计模式的核心,也是SOLID的基本原理之一。 –
您可以通过几种机制做的依赖注入。桥梁机制只是其中之一。简单的界面实现是另一个。类织造和其他动态技巧又一个。
依赖注入是一种开发/设计技术,但不是一种模式,因为它可以通过多种方式实现。
想一想更多关于此的信息,您可以考虑依赖注入软件体系结构模式(但仍不是设计),这是解决一系列架构问题(可测试性,可配置性,模块化等)。
换句话说,依赖注入可以有效地被视为一个模式,但在不同的层次上:架构,而不是设计。
桥接模式使用Dependency Inversion使网桥工作,即抽象基类/接口取决于实现者接口。
依赖注入是依赖倒置原理最常用的实现。
许多设计模式都有类似的UML图。
桥梁模式与依赖注入完全不同。
Dependency Injection - 在运行时或编译时轻松插入(和交换)代码中的依赖关系的一种方法。
Bridge Pattern - 一种在不同系统之间增加额外接口的方法。 Bridge是你的代码和其他系统之间的通信层。例如,Java中最常用的两种Bridge Pattern实现是JDBC(它通过Driver Bridge与数据库通信)和Swing(使用Bridge与操作系统的UI进行通信)。这样可以让其他系统换出或更改,而不会影响或更改通信层到系统。
编辑:忘了提及一座桥还允许桥上的双方独立进化和改变,而不会影响另一方。这是因为桥将两侧隔离开来。
- 1. 桥梁或工厂模式?
- 2. 桥梁+命令模式
- 3. 在WebView中注入Javascript桥梁
- 4. 依赖注入与注解
- 5. 与依赖注入循环依赖
- 6. 依赖注入与循环依赖
- 7. 依赖注入与数据库模型
- 8. 工厂模式在依赖注入
- 9. PHP工厂模式依赖注入
- 10. 依赖注入设计模式
- 11. 依赖注入容器 - 工厂模式
- 12. Ninject依赖注入Decorator模式
- 13. 依赖注入和观察者模式
- 14. 策略模式vs依赖注入
- 15. 依赖注入的创建模式
- 16. 策略模式和依赖注入
- 17. 依赖注入和/或工厂模式
- 18. C#依赖注入和策略模式
- 19. C++桥梁模式和智能指针
- 20. 桥梁模拟游戏
- 21. 依赖注入与node.js
- 22. 依赖注入与非类
- 23. 依赖注入RoleStore与ninject
- 24. 依赖注入与工厂
- 25. 依赖注入与集合
- 26. 依赖注入与roboguice
- 27. 依赖注入与OSGI
- 28. 依赖注入的方式
- 29. 依赖注入
- 30. 依赖注入
我不同意那些声称DI不是设计模式的人。很少人会认为MVC不是一种设计模式,它也有多种实现模式。 –