设计模式——桥接设计模式(Bridge)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/alionsss/article/details/87218813

代码:GitHub

桥接设计模式(品牌+产品)

0. UML结构图

桥接模式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();
        
    }

}

猜你喜欢

转载自blog.csdn.net/alionsss/article/details/87218813