java设计模式7——桥接模式

java设计模式7——桥接模式

1、桥接模式介绍

桥接模式是将抽象部分与它的实现部分分离,使他们都可以独立的变化。它是一种对象结构型模式,又称为柄体模式或接口模式。

2、解决问题

2.1、将复杂的组合设计问题转变为可以桥接的组合问题。如电脑的例子,电脑有类型和品牌,两者可以任意组合。

2.2、没有用设计模式时的示意图

2.3、使用桥接模式后的示意图

将这个场景中的两个变化的维度分离,品牌和类型。两者通过桥接进行两两组合。

3、代码演示:

3.1、编写品牌的抽象类

package com.xgp.company.结构性模式.桥接模式;

/**
 * 品牌类
 */
public interface Brand {
    void info();
}

3.2、由抽象类诞生出品牌

苹果:

package com.xgp.company.结构性模式.桥接模式;

/**
 * 苹果品牌
 */
public class Apple implements Brand {
    @Override
    public void info() {
        System.out.print("苹果");
    }
}

联想:

package com.xgp.company.结构性模式.桥接模式;

public class Laptop extends Computer {
    public Laptop(Brand brand) {
        super(brand);
    }

    @Override
    protected void info() {
        super.info();
        System.out.println("笔记本");
    }
}

3.3、电脑类型的抽象类

package com.xgp.company.结构性模式.桥接模式;

/**
 * 抽象的电脑类型类
 */
public abstract class Computer {

    //组合:品牌,电脑自带品牌
    protected Brand brand;

    public Computer(Brand brand) {
        this.brand = brand;
    }

    protected void info() {
        //自带品牌
        brand.info();
    }
}

3.4、由电脑类型的抽象类诞生实现类

台式电脑:

package com.xgp.company.结构性模式.桥接模式;

public class Desktop extends Computer {
    public Desktop(Brand brand) {
        super(brand);
    }

    @Override
    protected void info() {
        super.info();
        System.out.println("台式机");
    }
}

笔记本电脑:

package com.xgp.company.结构性模式.桥接模式;

public class Laptop extends Computer {
    public Laptop(Brand brand) {
        super(brand);
    }

    @Override
    protected void info() {
        super.info();
        System.out.println("笔记本");
    }
}

3.5、编写测试类,进行桥接

package com.xgp.company.结构性模式.桥接模式;

public class Test {
    public static void main(String[] args) {
        //苹果笔记本
        Computer computer = new Laptop(new Apple());
        computer.info();
        //联想台式机
        Computer computer12 = new Desktop(new Lenovo());
        computer12.info();
    }
}

输出结果:

苹果笔记本
联想台式机

4、类图示意:

5、好处分析:

6、弊端分析:

7、最佳实现

8、现已经使用的场景

(0)

相关推荐

  • java设计模式2————工厂模式

    java设计模式2————工厂模式

  • Java描述设计模式(08):桥接模式

    Java描述设计模式(08):桥接模式 原创知了一笑2019-08-23 07:00:00 写在前面 推荐阅读: Java描述设计模式(07):适配器模式 Java描述设计模式(06):建造者模式 J ...

  • 结构型模式:桥接模式

    七大结构型模式之二:桥接模式. 简介 姓名 :桥接模式 英文名 :Bridge Pattern 价值观 :解耦靠我 个人介绍 : Decouple an abstraction from its im ...

  • 【Java设计模式】 Java设计模式之(六)命令模式(Command Pattern)

    命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式.请求以命令的形式包裹在对象中,并传给调用对象.调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该 ...

  • 图解Java设计模式之桥接模式

    手机操作问题 传统方案解决手机操作问题 传统方案解决手机操作问题分析 桥接模式(Bridge)-基本介绍 桥接模式解决手机操作问题 桥接模式在JDBC中的源码解析 桥接模式的注意事项和细节 桥接模式其 ...

  • Java设计模式【命令模式】

    命令模式 命令模式很好理解,举个例子,司令员下令让士兵去干件事情,从整个事情的角度来考虑,司令员的作用是,发出口令,口令经过传递,传到了士兵耳朵里,士兵去执行.这个过程好在,三者相互解耦,任何一方都不 ...

  • PHP设计模式之桥接模式

    PHP设计模式之桥接模式 桥接模式,在程序世界中,其实就是组合/聚合的代名词.为什么这么说呢?熟悉面向对象的我们都知道继承的好处,子类可以共享父类的很多属性.功能.但是,继承也会带来一个问题,那就是严 ...

  • [PHP小课堂]PHP设计模式之桥接模式

    [PHP小课堂]PHP设计模式之桥接模式 关注公众号:[硬核项目经理]获取最新文章 添加微信/QQ好友:[DarkMatterZyCoder/149844827]免费得PHP.项目管理学习资料

  • 设计模式(7) 桥接模式

    桥接模式的概念与实现 为什么叫桥接模式 桥接模式的适用场景 继承是面向对象的三大特性之一,但很多时候使用继承的结果却不尽如人意.除了人尽皆知的紧耦合问题外,有的时候还会导致子类的快速膨胀. 设想这样一 ...

  • 图解Java设计模式之解释器模式

    图解Java设计模式之解释器模式 四则运算问题 传统方案解决四则运算问题分析 解释器模式基本介绍 解释器模式来实现四则 解析器模式在Spring框架中的源码分析 解释器模式的注意事项和细节 四则运算问 ...

  • 图解Java设计模式之备忘录模式

    游戏角色状态恢复问题 传统方案解决游戏角色恢复 传统的方式的问题分析 备忘录模式基本介绍 备忘录模式原理类图 游戏角色恢复状态实例 备忘录模式的注意事项和细节 游戏角色状态恢复问题 游戏角色有攻击力和 ...

  • 图解Java设计模式之命令模式

    智能生活项目需求 命令模式基本介绍 命令模式的原理类图 命令模式在Spring框架中JdbcTemplate应用源码分析 命令模式的注意事项和细节 智能生活项目需求 看一个具体的需求 我们买类一套智能 ...

  • 图解Java设计模式之模板模式

    豆浆制作问题 模板方法模式基本介绍 模板方法模式原理类图 模板方法模式解决豆浆制作问题 模板方法模式的钩子方法 模板方法模式在Spring框架中的源码分析 模板方法模式的注意事项和细节 豆浆制作问题 ...