public class Test {
public static void main(String[] args) {
Animal a1 = new WarmAnimal(new Dog()); // 温顺的狗
Animal a2 = new CoolAnimal(new Dog()); // 冷酷的狗
Animal a3 = new WarmAnimal(new Pig()); // 温顺的猪
Animal a4 = new CoolAnimal(new Pig()); // 冷酷的猪
}
}
// 两个维度(一个是具体产品,如狗、猪;一个是抽象产品,如温顺的动物、冷酷的动物)
// 排列组合(如温顺的狗、冷酷的猪等)
abstract class Animal {
protected AnimalBridge bridge; // 持有桥接类的引用
}
// 该桥接类的引入是关键
abstract class AnimalBridge extends Animal {}
class Dog extends AnimalBridge {}
class Pig extends AnimalBridge {}
class WarmAnimal extends Animal{
public WarmAnimal(AnimalBridge bridge) {
this.bridge = bridge;
}
}
class CoolAnimal extends Animal{
public CoolAnimal (AnimalBridge bridge){
this.bridge = bridge;
}
}
设计模式之桥接模式
最新推荐文章于 2012-12-12 10:25:31 发布