将抽象部分与其实现部分分离,使它们都可以独立地变化。

//抽象产品,Abstraction定义抽象类的接口,维护一个指向Implementor类型对象的指针。
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();
}
// Implementor定义实现类的接口
interface Color {
void OperationImp(String name);
}
//ConcreteImplementor实现Implementor接口并定义它的具体实现。
class Red implements Color {
@Override
public void OperationImp(String name) {
System.out.println(name + ":红色");
}
}
class Blue implements Color {
@Override
public void OperationImp(String name) {
System.out.println(name + ":蓝色");
}
}
//具体产品
class ProductA extends Product {
@Override
public void Operation() {
color.OperationImp(this.getName());
}
}
public class BridgeMain {
public static void main(String[] args) {
Product productA1 = new ProductA();
Color red = new Red();
Blue blue = new Blue();
productA1.setName("产品A1");
productA1.setColor(red);
productA1.Operation();
Product productA2 = new ProductA();
productA2.setName("产品A2");
productA2.setColor(blue);
productA2.Operation();
}
}
其他设计模式详见本专栏其他博文~
特别感谢zst_2001在备考软考期间提供的帮助,贴上博主B站
zst_2001的个人空间