桥接模式(结构型)

资源下载链接:点击下载代码点击下载文档

1.桥接

1.1定义

桥接模式:将抽象部分与它的实现部分解耦,使得两者都能够独立变化。

对象结构型模式

桥接模式的定义说明:

  • 又被称为柄体(Handle and Body)模式或接口(Interface)模式

  • 用抽象关联取代了传统的多层继承

  • 将类之间的静态继承关系转换为动态的对象组合关系

1.2角色

桥接模式包含以下4个角色:

  • Abstraction(抽象类)
  • RefinedAbstraction(扩充抽象类)
  • Implementor(实现类接口)
  • ConcreteImplementor(具体实现类)

1.3优点

  • 分离抽象接口及其实现部分
  • 可以取代多层继承方案,极大地减少了子类的个数
  • 提高了系统的可扩展性,在两个变化维度中任意扩展一个维度,不需要修改原有系统,符合开闭原则

1.4缺点

  • 会增加系统的理解与设计难度,由于关联关系建立在抽象层,要求开发者一开始就针对抽象层进行设计与编程
  • 正确识别出系统中两个独立变化的维度并不是一件容易的事情

1.5适用环境

  • 需要在抽象化和具体化之间增加更多的灵活性,避免在两个层次之间建立静态的继承关系
  • 抽象部分和实现部分可以以继承的方式独立扩展而互不影响
  • 一个类存在两个(或多个)独立变化的维度,且这两个(或多个)维度都需要独立地进行扩展
  • 不希望使用继承或因为多层继承导致系统类的个数急剧增加的系统

1.6教学例子

(1)分析:

Abstraction(抽象类)

RefinedAbstraction(扩充抽象类)

Implementor(实现类接口)

ConcreteImplementor(具体实现类)

Client(客户端)

1.7实操案例

(1)问题:

在某图形绘制软件中提供了多种不同类型的图形(shape),例如圆形(circle),三角形(triangle),长方形(rectangle)等,并为每种图形提供了多种样式,例如平面(plane)图形,立体(stereo)图形等,该软件需经常增加新的图形及新的图形样式,其初始设计方案如下:

Abstraction(抽象类)

RefinedAbstraction(扩充抽象类)

Implementor(实现类接口)

ConcreteImplementor(具体实现类)

Client(客户端)

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91337 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年2月18日
下一篇 2021年2月18日

相关推荐