3.2、桥接模式

意图
- 将抽象部分与它的实现部分分离,使它们都可以独立地变化
通俗解释
- 长方形和正方形都有四种颜色红黄蓝绿
- 不使用桥接模式要 8 个类(长红、长黄、长蓝、长绿、正红、正黄、正蓝、正绿),使用后只需要 6 个类
概念
- 适用于:
- 不希望在抽象和它的实现部分之间有一个固定的绑定关系
- 类的抽象以及它的实现都应该可以通过生成子类的方式来扩展
- 对一个抽象的实现部分的修改应对可以股不产生影响
- 想对客户完全隐藏抽象的实现部分(C++)
- 有许多类要生成的类层次结构
- 想在多个对象间共享实现,但同时要求客户不知道这一点
代码
java
public class BridgeParttern {
public static void main(String[] args) {
Product product = new ProductA();
Color red = new Red();
product.setColor(red);
}
}
abstract class Product {
private String name;
Protected Color color;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setColor(Color color) {
this.color = color;
}
public abstract void Operation();
}
class ProductA extends Product {
@Override
public void Operation() {
color.OperationImp(this.getName());
}
}
interface Color {
public void OperationImp(string name);
}
class Red implements Color {
@Override
public void OperationImp(string name) {
System.out.println("Red: " + name);
}
}