【发布时间】:2013-05-31 10:17:18
【问题描述】:
有人可以解释在使用“桥接”模式时“向上桥接”和“向下桥接”方法之间的区别吗?可能,我就是想不通。 说清楚,我在说什么,看看the part of the book with explanation
【问题讨论】:
有人可以解释在使用“桥接”模式时“向上桥接”和“向下桥接”方法之间的区别吗?可能,我就是想不通。 说清楚,我在说什么,看看the part of the book with explanation
【问题讨论】:
这对于 StackOverflow 来说可能不是一个很好的问题,但是由于我是您所参考的这本书的技术编辑,所以我觉得我应该在这里努力。
首先让我们总结一下这个问题。
我们有一些提供服务的代码——称之为OriginalService,我们有一些使用服务的代码——称之为Client。我们希望以这样一种方式再次实施该服务,即 Client 可以与 OriginalService 和 NewService 以同等便利的方式进行对话。
毕晓普教授正在区分两种情况。在“桥接”场景中,您有一个现有的 OriginalService 和一个直接与之对话的 Client;为了添加第二个服务,您必须对服务进行抽象。在“桥接”场景中,您知道当您设计原始服务时,客户将需要与该服务的多个版本进行通信,并从一开始就在抽象层中进行设计。
以视频驱动程序的问题为例。如果您的操作系统(客户端)知道如何与一个视频卡(原始服务)进行通信,那么该操作系统不太可能非常流行。相反,操作系统与 驱动程序 对话。每个显卡制造商都为其支持的操作系统制作驱动程序,现在操作系统可以与许多驱动程序通信。驱动程序在操作系统和显卡之间“架起一座桥梁”。
如果您从只知道如何与一种视频卡通信的操作系统开始,然后在此基础上改进驱动程序系统,那么您就处于“桥接”场景。
如果您从一开始就意识到您需要对硬件进行抽象并立即开始构建基于驱动程序的架构,那么您就处于“桥接”场景。
【讨论】: