软件设计模式及体系结构之桥接模式

桥接模式前言

在这里插入图片描述
分析:
蜡笔:颜色和型号两个不同的变化维度(即两个化原因)耦合在一起,无论是对颜色进行扩展还
对型号进行扩展都势必会影响另一个维度
毛笔:颜色和型号实现了分离,增加新的颜色或者型号对另一方没有任何影响
在这里插入图片描述
在这里插入图片描述

1.桥接模式的定义

在软件开发中如何将多个变化维度分离?
桥接模式:将抽象部分与它的实现部分解耦,使得两者都能够独立变化.
1.又被称为柄体( Handle and body)模式或接口( Interface)模式
2.用抽象关联取代了传统的多层继承
3.将类之间的静态继承关系转换为动态的
对象组合关系

2.桥接模式的结构与实现

在这里插入图片描述
桥接模式包含以下4个角色:
Abstraction(抽象类)
Refinedabstraction(扩充抽象类)
Implementor(实现类接口)
Concretelmplementor(具体实现类)

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

3.实例

某软件公司要开发一个跨平台图像浏览系统,要求该系统能够显示BMP,JPG、GIF、PNG等多种格式的文件,并且能够在Windows、Linux、UNIX等多个操作系统系统首先将各种格式的文件解析为像素矩然后将像素矩阵显示在在不同的操作系统中可以调不同的绘制函数来绘制像素矩阵。另外,系统需具有较好的扩展性在将来支持新的文件格式和操作系统。试使用桥接模式设计该跨平台图像浏览系统
在这里插入图片描述
1)Matrⅸx:像素矩阵类,辅助类
2) ImageImp:抽象操作系统实现类,充当实现类接口
3) WindowsImp: Windows操作系统实现类,充当具体实现类
4) LinuxImp: Linux操作系统实现类,充当具体实现类
5) UnixImp:UNX操作系统实现类,充当具体实现类
6) Image:抽象图像类,充当抽象类
7) JPGImage:JPG格式图像类,充当扩充抽象类
8) PNGImage:PNG格式图像类,充当扩充抽象类
9) BMPImage:BMP格式图像类,充当打充抽象类
10) GIFImage:GIF格式图像类,充当扩充抽象类
11) Client:客户端测试类

结果及分析

如果需要更换图像文件格式或者更换操作系统,只需修改配置文件即可

Guess you like

Origin blog.csdn.net/lpblog/article/details/121618620
Recommended