美文网首页图解设计模式
图解设计模式--Bridge(桥接模式)

图解设计模式--Bridge(桥接模式)

作者: Ginger12 | 来源:发表于2017-08-18 09:24 被阅读62次

将类的功能层次结构与实现层次结构分离

Bridge 模式

Bridge 模式的作用是将类的功能层次结构类的实现层次结连接起来。

类的层次结构的两个作用:

  1. 希望增加新的功能时

    父类具有基本功能,在子类中增加新的功能。(类的功能层次结构)

  2. 希望增加新的实现时

    父类通过声明抽象方法来定义接口,子类通过实现具体方法来实现接口。(类的实现层次结)

示例程序

DisplayImpl.java(Implementor)

package bridge;

public abstract class DisplayImpl {
    public abstract void rawOpen();
    public abstract void rawPrint();
    public abstract void rawClose();
}

Display.java(Abstraction)

package bridge;

public class Display {
    private DisplayImpl impl;
    public Display(DisplayImpl impl) {
        this.impl = impl;
    }
    public void open() {
        impl.rawOpen();
    }
    public void print() {
        impl.rawPrint();
    }
    public void close() {
        impl.rawClose();
    }
    public final void display() {
        open();
        print();
        close();
    }
}

CountDisplay.java(RefinedAbstraction)

package bridge;

public class CountDisplay extends Display {
    public CountDisplay(DisplayImpl impl) {
        super(impl);
    }
    public void multiDisplay(int times) {
        open();
        for (int i = 0; i < times; i++) {
            print();
        }
        close();
    }
}

StringDisplayImpl.java(ConcreteImplementor)

package bridge;

public class StringDisplayImpl extends DisplayImpl {
    private String string;
    private int width;

    public StringDisplayImpl(String string) {
        this.string = string;
        this.width = string.getBytes().length;
    }

    public void rawOpen() {
        printLine();
    }
    public void rawPrint() {
        System.out.println("|" + string + "|");
    }
    public void rawClose() {
        printLine();
    }

    private void printLine() {
        System.out.print("+");
        for (int i = 0; i < width; i++) {
            System.out.print("-");
        }
        System.out.println("+");
    }
}

Bridge 中登场的角色

  1. Abstraction(抽象化)

    该角色位于“类的功能层次结构”的最上层。它使用Implementor角色的方法定义了基本的功能。

  2. RefinedAbstraction(改善后的抽象化)

    在Abstraction角色的基础上增加了新的功能的角色。

  3. Implementor(实现者)

    该角色位于“类的实现层次结构”的最上层。它定义了用于实现Abstraction角色的接口的方法。

  4. ConcreteImplementor(具体实现者)

    该角色负责实现在Implementor角色中定义的接口。

拓展思路

分开后更容易扩展,增加后的功能可以被“所有的实现”使用。

相关文章

  • 桥接模式

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

  • 设计模式-桥接模式

    设计模式-桥接模式 定义 桥接模式(Bridge Pattern)也称为桥梁模式、接口(Interface)模式或...

  • 图解设计模式--Bridge(桥接模式)

    将类的功能层次结构与实现层次结构分离 Bridge 模式 Bridge 模式的作用是将类的功能层次结构和类的实现层...

  • 桥接模式

    介绍 桥接模式(Bridge Pattern) 也称为桥梁模式,是结构型设计模式之一。桥接模式的作用就是连接 "两...

  • Android设计模式——桥接模式(七大结构型)

    1.桥接模式介绍 桥接模式(Bridge Pattern)也称为桥梁模式,是七大结构型设计模式之一。 2....

  • 设计模式-桥接模式

    桥接模式介绍 桥接模式(Bridge Pattern)也称为桥梁模式,是结构型设计模式之一。顾名思义其与现实中的桥...

  • 设计模式之桥接(Bridge)

    概述 桥接模式(Bridge)是一种结构型设计模式。Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承...

  • 桥接模式

    慕课网笔记 —桥接模式(Bridge Pattern) 维基百科 桥接模式是软件设计模式中最复杂的模式之一,它把事...

  • 2、桥接模式(结构型)

    第一次接触桥接模式是在刷面试题时,遇到问jdbc主要用到的设计模式是?桥接模式。 桥接模式(Bridge):将抽象...

  • 设计模式解析—桥接设计模式

    桥接模式(Bridge Pattern)定义和使用场景 定义桥接模式(Bridge Pattern):将抽象部分...

网友评论

    本文标题:图解设计模式--Bridge(桥接模式)

    本文链接:https://www.haomeiwen.com/subject/dhvorxtx.html