在北京网站建设的岗位职责短视频代运营方案模板
文章目录
- Java 设计模式之桥接模式
- 概述
- UML
- 代码实现
Java 设计模式之桥接模式
概述
- 桥接模式(Bridge):将抽象部分与它的实现部分分离,使它们都可以独立地变化。
- 通过桥接模式,可以避免类爆炸问题,并提高系统的可扩展性。
UML
核心思想:
- 抽象部分:定义高层的控制逻辑。
- 实现部分:定义底层的具体实现。
- 桥接:通过组合的方式连接抽象部分和实现部分。
角色:
- Implementor:实现部分的接口,定义行为。
- ConcreteImplementor:具体实现部分类,实现行为。
- Abstraction:抽象部分的抽象类,持有实现部分的引用。
- RefinedAbstraction:具体抽象部分类,实现具体的抽象逻辑。
例如:图形绘制中的形状和颜色。
代码实现
假设我们需要绘制不同形状(如圆形、矩形)的图形,并且这些图形可以使用不同的颜色(如红色、绿色)。使用桥接模式可以将形状和颜色分离,使它们可以独立扩展。
定义部分实现的接口:
public interface Color {void applyColor();
}
定义具体的部分实现类:
public class Red implements Color {@Overridepublic void applyColor() {System.out.println("使用红色");}
}
public class Green implements Color {@Overridepublic void applyColor() {System.out.println("使用绿色");}
}
定义抽象实现的抽象类:
public abstract class Shape {protected Color color;public Shape(Color color) {this.color = color;}public abstract void draw();
}
定义具体的抽象实现类:
public class Rectangle extends Shape {public Rectangle(Color color) {super(color);}@Overridepublic void draw() {System.out.println("绘制矩形");color.applyColor();}
}
public class Circle extends Shape {public Circle(Color color) {super(color);}@Overridepublic void draw() {System.out.println("绘制圆形");color.applyColor();}
}
使用:
public class Client {public static void main(String[] args) {Red red = new Red();Green green = new Green();Shape redCircle = new Circle(red);Shape greenCircle = new Circle(green);redCircle.draw();greenCircle.draw();}
}
输出:
绘制圆形
使用红色
绘制圆形
使用绿色