桥梁模式的桥接变桥

时间:2013-06-04 21:18:05

标签: design-patterns bridge

在使用“Bridge”模式时,有人可以解释“Bridge-up”和“Bridge-down”方法之间的区别吗?可能,我只是无法得到这个想法。 为了说清楚,我在说什么,看看the part of the book with explanation

1 个答案:

答案 0 :(得分:5)

这对StackOverflow来说可能不是一个很好的问题,但由于我是本书的技术编辑,你觉得我应该尝试在这里努力。

首先让我们总结一下这个问题。

我们有一些提供服务的代码 - 调用此 OriginalService ,我们有一些消耗服务的代码 - 请调用此代码客户端。我们希望第二次实施该服务,以便客户能够与 OriginalService NewService 以及相同的设施进行对话。

毕晓普教授正在区分两种情景。在“桥接”方案中,您有一个现有的 OriginalService 和一个直接与之对话的客户;为了添加第二项服务,您必须对服务进行抽象。在“桥接”场景中,您知道何时设计客户端需要与此服务的多个版本进行通信的原始服务,并从一开始就在抽象层中进行设计。

例如考虑视频驱动程序的问题。如果您的操作系统(客户端)知道如何与一个视频卡(原始服务)进行通信,则该操作系统不太可能非常受欢迎。相反,操作系统会与驱动程序进行通信。每个视频卡制造商都为其支持的操作系统制作驱动程序,现在操作系统可以与许多驱动程序通信。驱动程序在操作系统和视频卡之间“构建桥梁”。

如果您从一个只知道如何与某种视频卡通信的操作系统开始,然后再改进驱动系统,那么您就处于“桥接”状态。

如果您从第一天开始意识到您需要对硬件进行抽象并立即开始基于驱动程序构建体系结构,那么您就处于“桥下”状态。