1空间做2个网站wordpress 判断手机端
文章目录
- 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();}
}
 
输出:
绘制圆形
使用红色
绘制圆形
使用绿色
