IT评测·应用市场-qidao123.com

标题: 设计模式-桥接模式 [打印本页]

作者: 万有斥力    时间: 2025-3-19 05:19
标题: 设计模式-桥接模式
桥接模式是一种布局型设计模式,旨在将抽象部分与其实现部分分离,使它们可以独立变化。它通过组合代替继承的方式,解决多维度变化导致的类爆炸问题,同时进步体系的机动性和可扩展性。
焦点思想

桥接模式的焦点是将抽象(功能)和实现(平台/具体行为)解耦,使其可以独立扩展。例如:

桥接模式的布局

桥接模式包罗以下角色:

桥接模式实现示例

假设需要绘制不同外形(圆形、矩形)和不同颜色(红色、蓝色)的图形,使用桥接模式避免创建 RedCircle、BlueCircle 等子类。
(1)实现接口(Implementor):颜色
  1. // 颜色接口(实现部分)
  2. public interface Color {
  3.     void applyColor();
  4. }
  5. // 具体颜色实现
  6. public class Red implements Color {
  7.     @Override
  8.     public void applyColor() {
  9.         System.out.print("红色");
  10.     }
  11. }
  12. public class Blue implements Color {
  13.     @Override
  14.     public void applyColor() {
  15.         System.out.print("蓝色");
  16.     }
  17. }
复制代码
(2)抽象类(Abstraction):图形
  1. // 图形抽象类(抽象部分)
  2. public abstract class Shape {
  3.     protected Color color; // 持有颜色的引用(桥接的关键)
  4.     public Shape(Color color) {
  5.         this.color = color;
  6.     }
  7.     public abstract void draw();
  8. }
  9. // 具体图形实现
  10. public class Circle extends Shape {
  11.     public Circle(Color color) {
  12.         super(color);
  13.     }
  14.     @Override
  15.     public void draw() {
  16.         System.out.print("圆形:");
  17.         color.applyColor(); // 委托给颜色实现
  18.         System.out.println();
  19.     }
  20. }
  21. public class Rectangle extends Shape {
  22.     public Rectangle(Color color) {
  23.         super(color);
  24.     }
  25.     @Override
  26.     public void draw() {
  27.         System.out.print("矩形:");
  28.         color.applyColor();
  29.         System.out.println();
  30.     }
  31. }
复制代码
(3)客户端代码
  1. public class Client {
  2.     public static void main(String[] args) {
  3.         // 创建颜色实现
  4.         Color red = new Red();
  5.         Color blue = new Blue();
  6.         // 创建图形,并桥接颜色
  7.         Shape redCircle = new Circle(red);
  8.         Shape blueRectangle = new Rectangle(blue);
  9.         // 绘制图形
  10.         redCircle.draw();    // 输出:圆形:红色
  11.         blueRectangle.draw(); // 输出:矩形:蓝色
  12.     }
  13. }
复制代码
桥接模式的优点


桥接模式的缺点


桥接模式的现实应用


应用场景:
桥接模式与其他模式的区别

模式焦点思想应用场景桥接模式分离抽象和实现,通过组合代替继承多维度变化的体系,避免类爆炸适配器模式转换接口以实现兼容整合不兼容的接口战略模式封装算法,使其可互换动态选择算法(如排序战略)抽象工厂模式创建相干对象的家族需要统一风格的组件(如UI控件) 总结

通过桥接模式,可以优雅地处理多维度变化,避免类层次布局的过度膨胀。它是设计复杂体系时的重要工具,尤其得当需要长期维护和扩展的代码。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4