美文网首页
Java学习笔记(10)-23种设计模式之桥接模式(Bridge

Java学习笔记(10)-23种设计模式之桥接模式(Bridge

作者: 非典型程序猿 | 来源:发表于2020-02-25 15:30 被阅读0次

今天总结结构型模式的第三种模式,桥接模式(Bridge模式)。

定义

将抽象与实现分离,使他们可以独立变化,它利用抽象类和接口组合的方式来替代继承关系,从而降低了抽象和实现这两个可变维度的耦合度。

结构

  • 抽象化角色 : 定义一个抽象类,并包含一个实现化对象的引用。
  • 扩展抽象化角色 : 是抽象化角色的字类,实现父类中的业务方法,并通过组合关系调用实现化角色中的业务方法。
  • 实现化 : 定义实现化角色的接口,供拓展抽象化角色调用
  • 具体实现化 : 给出实现化接口的具体实现。

代码示例

public class MyBridgeTest {
    public static void main(String[] args){
        ConcreteImplementorA concreteImplementorA = new ConcreteImplementorA();
        Abstraction refinedAbstraction = new RefinedAbstraction(concreteImplementorA);
        refinedAbstraction.Operation();
    }
    /**
     * 实现化角色
     */
    interface Implementor{
        void OperationImpl();
    }
    /**
     * 具体实例化角色
     */
    static class ConcreteImplementorA implements Implementor{

        @Override
        public void OperationImpl() {
            System.out.println("具体实例化(ConcreteImplementorA)角色被访问");
        }
    }
    /**
     * 抽象化角色
     */
    static abstract class Abstraction{
       protected  Implementor implementor;
       protected Abstraction(Implementor implementor){
           this.implementor = implementor ;
       }
       public abstract void Operation();
    }
    /**
     * 扩展抽象化角色
     */
    static class RefinedAbstraction extends Abstraction
    {
        protected RefinedAbstraction(Implementor implementor)
        {
            super(implementor);
        }
        public void Operation()
        {
            System.out.println("扩展抽象化(Refined Abstraction)角色被访问" );
            implementor.OperationImpl();
        }
    }
}

打印结果如下

扩展抽象化(Refined Abstraction)角色被访问
具体实例化(ConcreteImplementorA)角色被访问

简单梳理一下实现原理

  • 第一步:定义一个实现化角色,它是一个接口,声明具体实现角色所需要实现的方法。
  • 第二步:定义一个具体实现的类,它负责具体实现
  • 第三步:定义一个抽象化角色,也就是一个抽象类,它包含一个具体实现类的引用和一个实现具体业务的抽象方法。
  • 第四步:定义一个扩展实现类,它继承自抽象这个抽象类,并在其实现真正业务的抽象业务里实现父类的方法,做具体的业务。

优缺点

  • 优点 : 抽象与实现相分离,我们可以根据需求进行扩展;实现的细节对客户透明
  • 缺点:由于实现的聚合关系都依赖于抽象层,因此在设计时对设计人员的技术要求比较高。
    今天的桥接模式就总结到这里,觉得对您有帮助记得点个赞~

相关文章

  • 桥接模式

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

  • java/android 设计模式学习笔记(8)---桥接模式

    java/android 设计模式学习笔记(8)---桥接模式 【备注】只用于个人收藏

  • 设计模式-桥接模式

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

  • 桥接模式

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

  • 设计模式之桥接模式

    设计模式之桥接模式 Intro 桥接模式(Bridge),将抽象部分与它的实现部分分离,使得它们都可以独立地变化。...

  • Java设计模式之-桥接模式(Bridge)

    在学习这个设计模式的时候,我是比较痛苦的。因为网上的很多教程虽然主题是桥(Bridge),但是一直在说如何拆分,如...

  • 10-桥接模式

    桥接模式-Bridge Pattern【学习难度:★★★☆☆,使用频率:★★★☆☆】 处理多维度变化——桥接模式(...

  • java设计模式-桥接模式(Bridge)

    桥接模式,属于结构型模式。意图:将抽象部分与它的实现部分分离,使他们都可以独立的变化。 这句话其实有点难理解, 在...

  • Java学习笔记(10)-23种设计模式之桥接模式(Bridge

    今天总结结构型模式的第三种模式,桥接模式(Bridge模式)。 定义 将抽象与实现分离,使他们可以独立变化,它利用...

  • 桥接模式

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

网友评论

      本文标题:Java学习笔记(10)-23种设计模式之桥接模式(Bridge

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