桥梁模式的桥接变桥

Max*_*nko 0 design-patterns bridge

有人可以解释使用"Bridge"模式时"Bridge-up"和"Bridge-down"方法之间的区别吗?可能,我只是无法得到这个想法.为了说清楚,我在说什么,请看一下本书的部分内容并加以解释

Eri*_*ert 5

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

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

我们有一些提供服务的代码 - 调用这个OriginalService,我们有一些消耗服务的代码 - 调用此代码客户端.我们希望第二次实现该服务,以便客户端可以同等地使用OriginalServiceNewService进行通信.

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

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

如果您从一个只知道如何与一种视频卡通信的操作系统开始,然后在此基础上改进驱动程序系统,那么您就处于"桥接"状态.

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