Java 筹划模式之桥接模式

[复制链接]
发表于 2025-10-30 18:56:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Java 筹划模式之桥接模式

概述



  • 桥接模式(Bridge):将抽象部门与它的实现部门分离,使它们都可以独立地厘革。
  • 通过桥接模式,可以克制类爆炸题目,并进步体系的可扩展性。
UML


焦颔首脑:


  • 抽象部门:界说高层的控制逻辑。
  • 实现部门:界说底层的详细实现。
  • 桥接:通过组合的方式毗连抽象部门和实现部门。
脚色:


  • Implementor:实现部门的接口,界说举动。
  • ConcreteImplementor:详细实现部门类,实现举动。
  • Abstraction:抽象部门的抽象类,持有实现部门的引用。
  • RefinedAbstraction:详细抽象部门类,实现详细的抽象逻辑。
比方:图形绘制中的外形和颜色。
代码实现

假设我们须要绘制差别外形(如圆形、矩形)的图形,而且这些图形可以利用差别的颜色(如赤色、绿色)。利用桥接模式可以将外形和颜色分离,使它们可以独立扩展。
界说部门实现的接口:
  1. public interface Color {
  2.     void applyColor();
  3. }
复制代码
界说详细的部门实现类:
  1. public class Red implements Color {
  2.     @Override
  3.     public void applyColor() {
  4.         System.out.println("使用红色");
  5.     }
  6. }
复制代码
  1. public class Green implements Color {
  2.     @Override
  3.     public void applyColor() {
  4.         System.out.println("使用绿色");
  5.     }
  6. }
复制代码
界说抽象实现的抽象类:
  1. public abstract class Shape {
  2.     protected Color color;
  3.     public Shape(Color color) {
  4.         this.color = color;
  5.     }
  6.     public abstract void draw();
  7. }
复制代码
界说详细的抽象实现类:
  1. public class Rectangle extends Shape {
  2.     public Rectangle(Color color) {
  3.         super(color);
  4.     }
  5.     @Override
  6.     public void draw() {
  7.         System.out.println("绘制矩形");
  8.         color.applyColor();
  9.     }
  10. }
复制代码
  1. public class Circle extends Shape {
  2.     public Circle(Color color) {
  3.         super(color);
  4.     }
  5.     @Override
  6.     public void draw() {
  7.         System.out.println("绘制圆形");
  8.         color.applyColor();
  9.     }
  10. }
复制代码
利用:
  1. public class Client {
  2.     public static void main(String[] args) {
  3.         Red red = new Red();
  4.         Green green = new Green();
  5.         Shape redCircle = new Circle(red);
  6.         Shape greenCircle = new Circle(green);
  7.         redCircle.draw();
  8.         greenCircle.draw();
  9.     }
  10. }
复制代码
输出:
  1. 绘制圆形
  2. 使用红色
  3. 绘制圆形
  4. 使用绿色
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表