23种设计模式之桥接模式

23种设计模式之桥接模式,第1张

23种设计模式之桥接模式 桥接模式

桥接(Bridge)模式的定义如下:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。
举个栗子。
车企生产汽车,有不同类型以及不同颜色,例如生产suv,吉普车,轿车,颜色以红色与黄色举例。
遵循了里氏替换原则和依赖倒置原则,最终实现了开闭原则,对修改关闭,对扩展开放。
桥接(Bridge)模式的优点是:

  • 抽象与实现分离,扩展能力强
  • 符合开闭原则
  • 符合合成复用原则
  • 其实现细节对客户透明
    所以在学习设计模式的时候发现与设计原则在很大程度上有共通点。
    代码如下:
public class BridgeTest {
    public static void main(String[] args) {
        // 新建黄色的吉普车
        JeepCar jeepCar = new JeepCar();
        jeepCar.setCar(new Yellow());
        System.out.println(jeepCar.getName());


        // 新建红色的吉普车
        SuvCar suvCar = new SuvCar();
        suvCar.setCar(new RedColor());
        System.out.println(suvCar.getName());
    }
}

interface Color {
    String getColor();
}


interface Car {
    void setCar(Color color);

    String getName();
}

class SuvCar implements Car {
    private Color color;

    @Override
    public void setCar(Color color) {
        this.color = color;
    }

    @Override
    public String getName() {
        return "这是" + color.getColor() + "的" + "suv";
    }
}


class JeepCar implements Car {

    private Color color;

    @Override
    public void setCar(Color color) {
        this.color = color;
    }

    @Override
    public String getName() {
        return "这是" + color.getColor() + "的" + "吉普车";
    }
}


class RedColor implements Color {

    @Override
    public String getColor() {
        return "红色";
    }
}

class Yellow implements Color {

    @Override
    public String getColor() {
        return "黄色";
    }
}


参考资料:
1.http://c.biancheng.net/view/1364.html
代码地址:https://gitee.com/zhoujie1/design-mode-and-principle.git

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5671697.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存