桥接模式是一种结构性模式。当你有两个或多个产品维度,但是他们之间还有一定联系的时候,可以用桥接模式。所谓桥接,就是采用聚合,将一个产品抽象聚合到另一个产品抽象中。客户端访问聚合者的时候,新建一个被聚合者并传入聚合者中即可。
public class MainBridge {
public static void main(String[] args) {
GiftType gt1 = new WarmGift(new Flower());
gt1.printName();
GiftType gt2 = new ColdGift(new Flower());
gt2.printName();
GiftType gt3 = new WarmGift(new Book());
gt3.printName();
GiftType gt4 = new ColdGift(new Book());
gt4.printName();
}
}
abstract class GiftType{
Gift gift;
public GiftType(Gift gift){
this.gift = gift;
}
abstract void printName();
}
class WarmGift extends GiftType{
public WarmGift(Gift gift){
super(gift);
}
@Override
void printName() {
System.out.println("温暖的"+super.gift.printName());
}
}
class ColdGift extends GiftType{
public ColdGift(Gift gift){
super(gift);
}
@Override
void printName() {
System.out.println("冷酷的"+super.gift.printName());
}
}
interface Gift{
String printName();
}
class Flower implements Gift {
@Override
public String printName() {
return "花朵";
}
}
class Book implements Gift {
@Override
public String printName() {
return "书籍";
}
}