版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/alionsss/article/details/87218813
文章目录
代码:GitHub |
---|
桥接设计模式(品牌+产品)
0. UML结构图
1.品牌
1.1 品牌接口
public interface Brand {
String name();
}
1.2 格力
public class Gree implements Brand {
@Override
public String name() {
return "Gree";
}
}
1.3 美的
public class Media implements Brand {
@Override
public String name() {
return "Media";
}
}
2. 设备
2.1 设备基类(用于桥接品牌)
public abstract class Equipment {
protected Brand brand;
public Equipment(Brand brand) {
this.brand = brand;
}
public abstract void sale();
}
2.2 空调
public class AirConditioner extends Equipment {
public AirConditioner(Brand brand) {
super(brand);
}
@Override
public void sale() {
System.out.println(brand.name() + " AirConditioner sale");
}
}
2.3 冰箱
public class Fridge extends Equipment {
public Fridge(Brand brand) {
super(brand);
}
@Override
public void sale() {
System.out.println(brand.name() + " Fridge sale");
}
}
2.4 电风扇
public class ElectricFan extends Equipment {
public ElectricFan(Brand brand) {
super(brand);
}
@Override
public void sale() {
System.out.println(brand.name() + " ElectricFan sale");
}
}
3. 桥接模式调用Test
public class BridgeTest {
public static void main(String[] args) {
Equipment equipment = new AirConditioner(new Gree());
equipment.sale();
Equipment equipment2 = new ElectricFan(new Media());
equipment2.sale();
}
}