桥接模式Bridge:双维度扩展
public class GG{
public void chase(MM mm){
Gift g =new Book();
give(mm,g);
}
public void give(MM mm,Gift g){
}
}
public abstract class Gift{
}
public class Book extends Gift{
}
public class Flower extends Gift{
}
poublic class MM{
}
GG给MM送礼物,一本书或者花,
礼物也分种类,具体的书或者花也分种类。
这样的话 会有类爆炸,这个时候类就会以m * n的增长
这个时候使用桥接模式:
就是把Gift 和实现分开,两个维度同时发展
书和花继承GiftImpl ,以后新的实现礼物都继承GiftImpl。
然后在Gift中聚合GiftImpl即可。无论Gift有多少种实现,参数都是GiftImpl类型。就避免了类爆炸。
public class GG{
GiftImpl giftImpl;
public void chase(MM m