桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化,属于结构型模式。
一个类存在两个独立变化的维度,且这两个维度都需要进行扩展。
Boy
package com.dp.bridge;
public class Boy {
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void pursue(Girl girl) {
//Gift gift = new WarmGift(new Ring());
Gift gift = new WildGift(new Ring());
give(gift,girl);
}
public void give(Gift gift,Girl girl) {
}
}
Girl
package com.dp.bridge;
public class Girl {
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Gift
package com.dp.bridge;
public class Gift {
protected GiftImpl impl;
}
WarmGift
package com.dp.bridge;
public class WarmGift extends Gift{
public WarmGift(GiftImpl impl) {
this.impl = impl;
}
}
WildGift
package com.dp.bridge;
public class WildGift extends Gift{
WildGift(GiftImpl impl){
this.impl = impl;
}
}
GiftImpl
package com.dp.bridge;
public class GiftImpl {
}
Flower
package com.dp.bridge;
public class Flower extends GiftImpl{
}
Ring
package com.dp.bridge;
public class Ring extends GiftImpl{
}