桥接模式 (学习笔记9)
2023-09-27 14:20:18 时间
原文地址:http://c.biancheng.net/view/1364.html
什么时候用:
- 当一个类存在两个独立变化的维度,且这两个维度都需要进行扩展时。
- 当一个系统不希望使用继承或因为多层次继承导致系统类的个数急剧增加时。
- 当一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性时。
桥接(Bridge)模式包含以下主要角色:
- 抽象化(Abstraction)角色:定义抽象类,并包含一个对实现化对象的引用。
- 扩展抽象化(Refined Abstraction)角色:是抽象化角色的子类,实现父类中的业务方法,并通过组合关系调用实现化角色中的业务方法。
- 实现化(Implementor)角色:定义实现化角色的接口,供扩展抽象化角色调用。
- 具体实现化(Concrete Implementor)角色:给出实现化角色接口的具体实现。
结构图:
示例代码:
package bridge; public class BridgeTest { public static void main(String[] args) { Implementor imple = new ConcreteImplementorA(); Abstraction abs = new RefinedAbstraction(imple); abs.Operation(); } } //实现化角色 interface Implementor { public void OperationImpl(); } //具体实现化角色 class ConcreteImplementorA implements Implementor { public void OperationImpl() { System.out.println("具体实现化(Concrete Implementor)角色被访问"); } } //抽象化角色 abstract class Abstraction { protected Implementor imple; protected Abstraction(Implementor imple) { this.imple = imple; } public abstract void Operation(); } //扩展抽象化角色 class RefinedAbstraction extends Abstraction { protected RefinedAbstraction(Implementor imple) { super(imple); } public void Operation() { System.out.println("扩展抽象化(Refined Abstraction)角色被访问"); imple.OperationImpl(); } }
相关文章
- [译]聊聊C#中的泛型的使用(新手勿入) Seaching TreeVIew WPF 可编辑树Ztree的使用(包括对后台数据库的增删改查) 字段和属性的区别 C# 遍历Dictionary并修改其中的Value 学习笔记——异步 程序员常说的「哈希表」是个什么鬼?
- 科学育儿笔记
- w25qxx的nor flash学习笔记
- opencv学习笔记(二)寻找轮廓
- IMX6ULL自学笔记(princrtl,gpio子系统)
- 机器学习笔记之配分函数(三)对比散度
- 机器学习笔记之支持向量机(四)软间隔SVM
- 机器学习笔记之线性分类——高斯判别分析(一)模型思路构建
- C#学习笔记(6)委托
- Nginx 笔记与总结(2)信号控制
- PHP 开发 APP 接口 学习笔记与总结 - 静态缓存
- Android学习笔记进阶十之Matrix错切变换
- [学习笔记]Javascript采用二进制浮点数和四舍五入的错误
- Lua学习笔记之协程(coroutine)
- JSP学习笔记(四)登录界面
- JSP-Spring4学习笔记(四)装饰模式、静态和动态代理
- Zynq Fatfs文件系统应用笔记
- Unity3D学习笔记(一、环境安装)
- 策略模式(headfirst设计模式学习笔记)
- 《Head First 设计模式》学习笔记——命令模式
- 安卓开发笔记(三十):自定义Button
- 安卓开发笔记(二十六):Splash实现首页快速开屏功能
- 学习笔记(09):Python网络编程&并发编程-模拟ssh远程执行命令-代码实现
- [Android Studio]Android 数据存储-文件存储学习笔记-结合保存QQ账户与密码存储到指定文件中的演练
- Linux下汇编语言学习笔记22 ---
- Arduino学习笔记60
- Kyin学习笔记(一)-----Kylin安装、入门案例和原理介绍
- 《Single Image Depth Prediction with Wavelet Decomposition》论文笔记
- 论文阅读笔记:gan inversion:a survey