C++设计模式之Bridge(桥接)模式

/ 0评 / 0

Published by orzz.org(). (http://orzz.org/c%e8%ae%be%e8%ae%a1%e6%a8%a1%e5%bc%8f%e4%b9%8bbridge%e6%a1%a5%e6%8e%a5%e6%a8%a1%e5%bc%8f/)

当我们面临两个相互独立的变化作用到同一个逻辑对象上时,往往会导致设计的尴尬局面。

比如说,当我们要抽象“服装”这个概念,我们会得到如“衣服”、“裤子”、“帽子”的样式分类方式,同样也会得到如“绿色”、“红色”、“彩色”的颜色分类方式,还可以得到“冬装”、“春装”、“夏装”的时令分类方式。

每一种不同的分类方式之间都是平行的,都代表了一种可能的变化方式。若我们使用单纯的接口方式来抽象变化,我们只能对其中一种变化做出抽象,剩下的其他变化,只有被生硬而重复的拓展,毫无维护的便捷性。

事物的变化有很多,我们可以把事物可能的变化抽象并封装,使用接口的思想来访问,这样我们就可以很好的管理各种不同的变化方式。
使对象能够适应多个平行变化的模式,就是Bridge(桥接)模式。它将多种不同的变化独立的抽象,并分别实现它们。


如上图,我们希望不同的变化能够独立的生长,而不是纠结在一起难以分开。为了做到这点,我们需要先针对不同的变化做独立的抽象,然后再使用组合的思想,把接口之间连接起来。


C++示例如下:

Published by orzz.org(). (http://orzz.org/c%e8%ae%be%e8%ae%a1%e6%a8%a1%e5%bc%8f%e4%b9%8bbridge%e6%a1%a5%e6%8e%a5%e6%a8%a1%e5%bc%8f/)

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据