首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >桥接模式与依赖注入

桥接模式与依赖注入
EN

Stack Overflow用户
提问于 2013-08-31 04:02:27
回答 5查看 4.3K关注 0票数 11

桥接模式和依赖注入有什么不同?

对于这两种模式,我们都有一个实现了另一个抽象的抽象类。下面是桥接模式UML图。

EN

回答 5

Stack Overflow用户

发布于 2013-08-31 04:08:13

AFAIK依赖注入不是一种设计模式,而是SOLID principles中定义的设计指南。

因此,桥接模式在其中使用依赖注入来实现所需的多态行为,其中DrawingAPI被注入到构造函数中,以将ShapeShape的具体实现中解耦。

来自Bridge Pattern of Wikipedia示例的代码片段

代码语言:javascript
复制
protected Shape(DrawingAPI drawingAPI){
      this.drawingAPI = drawingAPI;
}

桥模式--一种设计模式

依赖注入-设计指南或原则

票数 9
EN

Stack Overflow用户

发布于 2013-08-31 04:08:38

您可以通过几种机制进行依赖注入。桥接机制只是其中之一。另一种方法是简单的接口实现。类编织和其他动态技巧又是另一个。

依赖注入是一种开发/设计技术,但不是一种模式,因为它可以通过多种方式实现。

再仔细考虑一下,您可以将依赖注入视为软件体系结构模式(但仍然不是设计模式),因为它是解决一系列体系结构问题(可测试性、可配置性、模块化等)的常见方法。

换句话说,依赖注入可以有效地被认为是一种模式,但在不同的层次上:架构,而不是设计。

票数 6
EN

Stack Overflow用户

发布于 2013-08-31 10:31:14

许多设计模式都有类似的UML图。

桥接模式与依赖注入完全不同。

Dependency Injection -一种在运行时或编译时轻松地在代码中插入(和交换)依赖项的方法。

Bridge Pattern -一种在不同系统之间提供额外接口的方法。Bridge是代码和其他系统之间的通信层。例如,Java中最常用的两个Bridge模式实现是JDBC (通过驱动程序Bridge与数据库通信)和Swing (使用Bridge与操作系统的UI通信)。这可以让另一个系统换出或更改,而不会影响或更改您系统的通信层。

编辑:忘记提到桥也允许桥上的双方独立地进化和更改,而不会影响另一方。这是因为桥接器将两端相互隔离。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18540645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档