资源下载链接:点击下载代码点击下载文档
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进行处理,非常感谢!