Bridge设计模式:分离抽象和具体,然后抽象部分可以按照自己的继承树来发展;同样具体部分也可以按照自己的继承树来发展;最后用聚合方式(桥)连接抽象和具体。
代码举例:
使用桥接模式:
分离抽象与具体实现,让他们可以独自发展
Gift -> WarmGift ColdGift WildGift
GiftImpl -> Flower Ring Car
抽象部分:
package com.mashibing.dp.bridge.v4;
public abstract class Gift {
GiftImpl impl;
}
package com.mashibing.dp.bridge.v4;
public class WildGift extends Gift {
public WildGift(GiftImpl impl) {
this.impl = impl;
}
}
package com.mashibing.dp.bridge.v4;
public class WarmGift extends Gift {
public WarmGift(GiftImpl impl) {
this.impl = impl;
}
}
具体部分:
package com.mashibing.dp.bridge.v4;
public class GiftImpl {
}
package com.mashibing.dp.bridge.v4;
public class Book extends GiftImpl {
}
package com.mashibing.dp.bridge.v4;
public class Flower extends GiftImpl {
}
package com.mashibing.dp.bridge.v4;
public class MM {
String name;
}
package com.mashibing.dp.bridge.v4;
public class GG {
public void chase(MM mm) {
Gift g = new WarmGift(new Flower());
give(mm, g);
}
public void give(MM mm, Gift g) {
System.out.println(g + "gived!");
}
}