栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

23种设计模式之桥接模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/666434.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号