桥梁设计模式中抽象的含义



我对如何解释Java中的桥梁设计模式感到困惑。基于GOF的定义:

桥梁模式是将抽象从其实现中解脱出来,以便两者可以独立变化。

但是,我认为我们进行抽象(使用抽象类和界面(将实现与其他代码的实现相结合(因为我们只是声明接口或抽象类而不是实现类(。现在,我认为由于桥梁模式,我对我如何理解抽象是错误的。

到底是什么是抽象,在桥梁模式中如何与实现分解?

我认为我们进行抽象(使用抽象类,以及 界面(将实现与其他代码的其余部分解(

您的理解是正确的。
您在角案例中使用桥梁,其中不仅有一个,而且有两个(或更多(抽象,而这些抽象不想混合在一起

GOF模式很好地说明了这一点。
工具包的窗口依赖两个抽象:

  • 术语中的窗口组件(图标,瞬态,全尺寸等(
  • (
  • OS实现/功能方面的窗口。

如果您定义了一个接口:窗口,则将两个抽象将两个摘要插入相同的接口,并且窗口实现将因此将它们逐对。

如果您定义了两个接口:Window(作为模型/功能概念(和WindowImp(作为OS实现(和两个不同的层次结构:您将抽象分配给抽象。

抽象在这种情况下不是在抽象类的意义上。在某种程度上更高层次的想法,而实现是在某种程度上使用抽象。这个想法的具体实现。

举一个例子,假设您正在建造玩具屋。房屋的一般想法是有墙壁,门,窗户和屋顶的东西。那将是抽象。

但是,您可以通过不同的材料/构造套件(乐高或Duplo,Paper,Wood,Cardboard(建造房屋。那将是实施。在每个版本中,您都需要知道如何建造墙壁,门,窗户和屋顶。

因此,您基本上将房屋的抽象思想与不同的实现结合在一起。在我的理解中,这是桥梁模式的精髓。

到底是什么是抽象,它如何与 桥梁模式的实现?

我假设您熟悉许多桥模式文章中使用的形状和颜色示例。例如。在这里(如果您不熟悉,最好通过此链接(

形状和颜色基本上是由于明天您可能需要紫色矩形或带有梯度的十二烷的需求而产生的抽象!在文章中,形状具有颜色(抽象取决于抽象(。如果形状具有红色,则取决于实现(将耦合(,您每次需要不同的颜色都必须创建一个新类。

我知道我的答案不足,但我希望它是最后一个理解的桥梁模式。

最新更新