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

【JAVA长虹键法】第十式 桥接模式(23种设计模式)

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

【JAVA长虹键法】第十式 桥接模式(23种设计模式)

这里是JAVA长虹键法,关注我学习JAVA不迷路
如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位点赞评论收藏⭐️

专栏介绍

【JAVA长虹键法】 主要讲了23种设计模式,本系列专栏会以虹猫蓝兔七侠传的故事为例来给大家详细分析所有模式,希望能给大家带来帮助!

本期介绍

模式: 桥接模式
案例: 蓝兔宫主买裙子

文章目录
    • 专栏介绍
    • 本期介绍
  • 什么是桥接模式
    • 优点
    • 缺点
    • 知识点
  • 桥接模式实现
    • 颜色
      • 黄色
      • 红色
    • 裙子
      • 长裙
      • 短裙
    • 测试
  • 总结
  • 下期预告

什么是桥接模式

桥接(Bridge)模式的定义如下: 将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。

优点

1、抽象与实现分离,扩展能力强
2、符合开闭原则
3、符合合成复用原则
4、其实现细节对客户透明

缺点

由于聚合关系建立在抽象层,要求开发者针对抽象化进行设计与编程,能正确地识别出系统中两个独立变化的维度,这增加了系统的理解与设计难度。

知识点

可以将抽象化部分与实现化部分分开,取消二者的继承关系,改用组合关系。

桥接模式实现

案例: 蓝兔宫主买裙子

裙子分两个维度,分别是颜色和样式。
颜色有黄色和红色;
样式分长裙和短裙;

抽象化(Abstraction)角色: 颜色
扩展抽象化(Refined Abstraction)角色: 黄色和红色
实现化(Implementor)角色: 样式
具体实现化(Concrete Implementor)角色: 长裙和短裙

颜色

颜色接口,声明一个show()抽象方法

public interface Color {
    void show();
}
黄色

黄色类并实现颜色接口

public class ColorYellow implements Color {
    @Override
    public void show() {
        System.out.println("黄色的");
    }
}
红色

红色类并实现颜色接口

public class ColorRed implements Color {
    @Override
    public void show() {
        System.out.println("红色的");
    }
}
裙子

裙子类,声明一个颜色属性和一个抽象方法

abstract class Qun {
    protected Color color;

    protected Qun() {
    }

    protected Qun(Color color) {
        this.color = color;
    }

    public abstract void shows();
}
长裙

继承裙子类,并实现抽象方法

public class QunChang extends Qun {
    protected QunChang() {
    }

    protected QunChang(Color color) {
        super(color);
    }

    @Override
    public void shows() {
        System.out.println("长裙");
        color.show();
    }
}
短裙

继承裙子类,并实现抽象方法

public class QunDuan extends Qun {
    protected QunDuan() {
    }

    protected QunDuan(Color color) {
        super(color);
    }

    @Override
    public void shows() {
        System.out.println("短裙");
        color.show();
    }
}
测试

new一个红色对象作为参数传给长裙。

public class Demo {
    public static void main(String[] args) {
        Color color = new ColorRed();
        Qun qun = new QunChang(color);
        qun.shows();
    }
}

总结

当一个类内部具备两种或多种变化维度时,使用桥接模式可以解耦这些变化的维度,使高层代码架构稳定。

下期预告

模式: 装饰器模式
案例: 黑小虎抓住了七侠,把虹猫烤了


最爱的少主出场了

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

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

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