java常用设计模式的学习笔记(桥接模式)

java 常用设计模式——桥接模式(Bridge pattern)


一、桥接模式

1. 例子

为了更好的理解和学习桥接模式,举一例子,先。例子参考自: 链接.

(1)如下图,有4种形状,3种颜色,用户想要得到不同颜色不同形状的图形,可以创建3x4=12个类去完成这一需求。那么创建的类将随着颜色和形状的增加而急速增加,这也将增加系统的复杂性,这些类中代码的重复性也很高。

在这里插入图片描述
(2)如下图,可以将形状和颜色分开,创建各自的父类,之后创建实现各自的继承类(4+3=7),然后通过某种连接将这些继承类组合成所需的图形。那么桥接模式刚好满足了这一需求,所需类的创建个数也减少了很多。
在这里插入图片描述

2. 简介

桥接模式是一种结构型设计模式,通过提供抽象化和实现化之间的桥接结构实现两者的解耦。所谓解耦就是让抽象部分和实现部分之间的关联性降低,让他们独立的变化而彼此不受影响。

二、主要实现

这里主要演示怎么桥接他们的实现部分和抽象部分的代码。
假如图形的父类是Shape,继承类有CircleShape,SquareShape等等,颜色的父类是Color,继承类有White,Black。

代码如下(桥接):

//在Shape类中声明一个颜色对象
protected Color color;
//构造方法,创建Shape对象时与color进行桥接
protected Shape(Color color){
	this.color=color;
}

代码如下(调用):

//创建白色圆形
Shape whiteCircle=new CircleShape(new White());
//创建黑色正方形
Shape blackSquare=new SquareShape(new Black());
}

桥接代码部分就是桥接方法的主要代码,调用代码部分是最后组合得到所需的形状。


三、使用场景

使用桥接模式的优点:

  1. 抽象与实现分离,两者可以独立的变化而互不影响,从而降低了相互依赖性。
  2. 优秀的扩展能力,可以独立的对抽象部分和实现部分进行扩充。
  3. 实现细节对客户透明。

基于这些优点桥接模式可以用于:

  1. 我们在设计时不希望抽象部分和实现部分有一个固定的绑定关系,就像上述例子中的第一张图那样,通过静态的继承去实现,这样便失去了灵活性,并随着类的不断增加而使系统相当复杂。
  2. 抽象部分和实现部分能独立的进行扩充,比如手机和音乐播放器,手机可以有苹果,安卓,音乐播放器可以有酷狗,网易云,之后都会扩展出不同类型。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值