23种设计模式之桥接模式
模式结构
- 抽象化(Abstraction)角色:定义抽象类,并包含一个对实现化对象的引用。
- 扩展抽象化(Refined Abstraction)角色:是抽象化角色的子类,实现父类中的业务方法,并通过组合关系调用实现化角色中的业务方法。
- 实现化(Implementor)角色:定义实现化角色的接口,供扩展抽象化角色调用。
- 具体实现化(Concrete Implementor)角色:给出实现化角色接口的具体实现。
案例
public interface Color {
public String getColor();
}
public class Green implements Color {
@Override
public String getColor() {
return "绿色";
}
}
public class Red implements Color{
@Override
public String getColor() {
return "红色";
}
}
public abstract class Bag {
public Color color;
public void setColor(Color color){
this.color = color;
}
public abstract String getName();
}
public class HandBag extends Bag {
@Override
public String getName() {
return color.getColor() + ":挎包";
}
}
public class Wallet extends Bag{
@Override
public String getName() {
return color.getColor() + ":钱包";
}
}
public class BridgeTest {
public static void main(String[] args) {
Bag bag = new HandBag();
bag.setColor(new Red());
System.out.println(bag.getName());
}
}