如果在子类的扩展上有2个维度,如果你想解耦合来解决他们的排列组合时用桥接模式(2个维度排列组合)
GiftImpl.java
package com.bjsxt.dp.bridge;
public class GiftImpl {
}
Gift.java
package com.bjsxt.dp.bridge;
public class Gift {
protected GiftImpl impl;
}
Flower.java
package com.bjsxt.dp.bridge;
public class Flower extends GiftImpl {
}
Ring.java
package com.bjsxt.dp.bridge;
public class Ring extends GiftImpl {
}
WarmGift.java
package com.bjsxt.dp.bridge;
public class WarmGift extends Gift{
public WarmGift(GiftImpl impl) {
this.impl = impl;
}
}
WildGift.java
package com.bjsxt.dp.bridge;
public class WildGift extends Gift {
public WildGift(Ring ring) {
this.impl = impl;
}
}
MM.java
package com.bjsxt.dp.bridge;
public class MM {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Boy.java
package com.bjsxt.dp.bridge;
public class Boy {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void pursue(MM mm) {
//Gift g = new WarmGift(new Flower()); //温暖的花
Gift g = new WildGift(new Ring()); //狂野的戒指
//give(g, mm);
}
public void give(Gift g, MM mm) {
}
}