C++设计模式:桥模式
·
5.1 动机
由于某些类型的固有的实现逻辑,使得它们具有两个变化的维度,乃至多个纬度的变化。
5.2 模式定义
将抽象部分(业务功能)与实现部分(平台实现)分离,使它们都可以独立地变化。
5.3 案例
我们需要开发这么一个系统,这个系统需要的功能有:登录,发送信息,发送图片,播放音乐,绘制图形,编写文档以及连接的功能。
于是,Messager类为:

但是,如果我们要让这个系统多平台使用(PC端,移动端),而不同平台的播放音乐,绘制图形,编写文档以及连接的功能需要不同的实现,但是登录,发送信息,发送图片这三个功能都是一样的,如果我们一个一个去实现,所导致类的数目将会是:m*n(m表示功能数,n表示平台数)
于是,我们可以使用桥模式,将变化的接口封装出去,使其独立变化,这样类的数目将会降低到:1+m+n
这种思想其实就是将编译时装配转为运行时装配,以此将模块解耦。
使用桥模式实现如下:




5.4 桥模式在主流框架中的应用
- Java AWT(Abstract Window Toolkit)和 Swing 是 Java GUI 编程中常用的框架。在这些框架中,使用桥模式将抽象的组件(如按钮、文本框等)与具体的实现(如 Windows 实现、Linux 实现等)分离开来。例如,Swing 中的 JButton 类是抽象部分,而不同平台上的按钮实现(如 WindowsButton、LinuxButton)则是实现部分。
- 在 Spring 中,桥模式通常用于将业务逻辑(如服务层、数据访问层)与具体的实现(如数据库、消息队列)解耦。通过使用桥模式,Spring 能够将应用程序的各个组件分离开来,使得它们可以独立演化和测试。
- 在 Django 中,桥模式可以用于将视图逻辑(如请求处理、数据渲染)与模型逻辑(如数据库访问、数据操作)分离开来。通过使用桥模式,Django 能够提供灵活的数据模型和视图组件,使得开发人员可以更容易地编写和维护 Web 应用程序。
更多推荐
所有评论(0)