设计模式之Bridge模式

Bridge模式是一种设计模式,它将类的功能层次结构与类的实现层次结构分离,通过组合而非继承来实现多态性。这种模式在面对变化因素较多或需要动态改变实现时特别有用,降低了代码的复杂性和耦合度。强关联通常指继承关系,而弱关联则涉及委托。文章还解释了如何应用Bridge模式,并给出了适用场景的例子。
摘要由CSDN通过智能技术生成

Bridge模式

What

"Bridge":桥梁

在“类的功能层次结构”和“类的实现层次结构”之间搭建桥梁的设计模式。

Why

为什么要使用Bridge模式?

类的层次结构只有一层的时候,功能层次结构实现层次结构会混杂在一个层次结构中,这会降低代码的可读性。

当该类的性态较多,且不固定,比方说多边形有长方形和菱形两个子类,它们都有红黑两种颜色,那么按照排列组合就有4个多边形的子类。如果忽然加入白色,那么就要额外在多两个子类。但是如果将颜色抽象为一个维度,从继承改为组合,那么只需有长方形,棱形两个多边形子类作为功能层次结构,另外再由红黑两个颜色作为实现层次结构,如果需要红色长方形,则让长方形实现红色实现类即可实现,若要新增白色颜色,也只需要新增一个白色作为实现层次结构。

什么是强关联,什么是弱关联?

像继承关系,A是B的子类,那么AB就为强关联。

像委托关系,当A作为实例被生成时,B才会作为参数被传入的类构成关联。

Bridge模式适用于什么场景?

当一个对象具有多态性,且变化因素可以动态变化或者不固定,可以尝试将变化因素抽象成一个维度,以组合代替继承。

How

  • 确定一个抽象类,确定其性态以及功能,判断其是否需要使用Bridge模式进行处理,若需要则进行下一步。

  • 深入理解该类,选取适合的维度进行独立。

  • 了解客户端的业务需求,并在抽象基类中定义它们。

  • 确定在所有平台上都可执行的业务。并在通用实现接口中声明抽象部分所需的业务。

  • 为你域内的所有平台创建实现类,但需确保它们遵循实现部分的接口。

  • 在抽象类中添加指向实现类型的引用成员变量。抽象部分会将大部分工作委派给该成员变量所指向的实现对象。

类图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值