桥接模式和依赖注入有什么不同?
对于这两种模式,我们都有一个实现了另一个抽象的抽象类。下面是桥接模式UML图。

发布于 2013-08-31 04:08:13
AFAIK依赖注入不是一种设计模式,而是SOLID principles中定义的设计指南。
因此,桥接模式在其中使用依赖注入来实现所需的多态行为,其中DrawingAPI被注入到构造函数中,以将Shape从Shape的具体实现中解耦。
来自Bridge Pattern of Wikipedia示例的代码片段
protected Shape(DrawingAPI drawingAPI){
this.drawingAPI = drawingAPI;
}桥模式--一种设计模式
依赖注入-设计指南或原则
发布于 2013-08-31 04:08:38
您可以通过几种机制进行依赖注入。桥接机制只是其中之一。另一种方法是简单的接口实现。类编织和其他动态技巧又是另一个。
依赖注入是一种开发/设计技术,但不是一种模式,因为它可以通过多种方式实现。
再仔细考虑一下,您可以将依赖注入视为软件体系结构模式(但仍然不是设计模式),因为它是解决一系列体系结构问题(可测试性、可配置性、模块化等)的常见方法。
换句话说,依赖注入可以有效地被认为是一种模式,但在不同的层次上:架构,而不是设计。
发布于 2013-08-31 10:31:14
许多设计模式都有类似的UML图。
桥接模式与依赖注入完全不同。
Dependency Injection -一种在运行时或编译时轻松地在代码中插入(和交换)依赖项的方法。
Bridge Pattern -一种在不同系统之间提供额外接口的方法。Bridge是代码和其他系统之间的通信层。例如,Java中最常用的两个Bridge模式实现是JDBC (通过驱动程序Bridge与数据库通信)和Swing (使用Bridge与操作系统的UI通信)。这可以让另一个系统换出或更改,而不会影响或更改您系统的通信层。
编辑:忘记提到桥也允许桥上的双方独立地进化和更改,而不会影响另一方。这是因为桥接器将两端相互隔离。
https://stackoverflow.com/questions/18540645
复制相似问题