Java设计模式之java桥接模式详解

Java设计模式之java桥接模式详解

什么是Java桥接模式?

Java桥接模式是23种常用的设计模式之一,也称为桥梁模式。它是一个两层结构,其中底层定义了实现,而高层定义了抽象。抽象层通过委托调用实现层中的方法,以实现业务需求。这种模式可以将抽象部分与它的实现部分分离,使它们可以独立地变化。

应用场景

Java桥接模式常用于以下场景:

  • 当需要避免使用由于多重继承导致的类层次结构扩展时;
  • 当希望在抽象部分和实现部分之间建立一个稳定的联系,以便在两者之间随时切换时;
  • 当希望改变一个已有的类的实现接口时;
  • 当将实现部分与抽象部分分离开来,以便两者可以独立地进行变化时。

代码实现

抽象类

首先,我们需要定义一个抽象类,它会委托实现类中的方法来完成具体业务操作。抽象类定义了一个成员变量 im,其类型为 Implementor,表示实现类,以及一个抽象方法 operation()

public abstract class Abstraction {
    protected Implementor im;

    protected Abstraction(Implementor im) {
        this.im = im;
    }

    public abstract void operation();
}

抽象类的具体实现类

我们接着定义一个具体实现类,它继承自上述定义的抽象类,并实现了 operation() 方法:

public class RefinedAbstraction extends Abstraction {
    protected RefinedAbstraction(Implementor im) {
        super(im);
    }

    @Override
    public void operation() {
        System.out.println("RefinedAbstraction.operation()");
        im.operationImp();
    }
}

其中,operation() 方法打印一条消息,然后通过委托调用实现类的 operationImp() 方法来完成业务操作。

实现类

接下来,我们定义一个实现类,它实现了 Implementor 接口:

public interface Implementor {
    void operationImp();
}

public class ConcreteImplementorA implements Implementor {
    @Override
    public void operationImp() {
        System.out.println("ConcreteImplementorA.operationImp()");
    }
}

public class ConcreteImplementorB implements Implementor {
    @Override
    public void operationImp() {
        System.out.println("ConcreteImplementorB.operationImp()");
    }
}

实现类中实现了 operationImp() 方法,该方法打印一条消息。

示例

下面是一个使用 Java 桥接模式的示例:

Implementor impleA = new ConcreteImplementorA();
Abstraction abs = new RefinedAbstraction(impleA);
abs.operation();

Implementor impleB = new ConcreteImplementorB();
abs = new RefinedAbstraction(impleB);
abs.operation();

输出结果为:

RefinedAbstraction.operation()
ConcreteImplementorA.operationImp()
RefinedAbstraction.operation()
ConcreteImplementorB.operationImp()

该示例中,我们先创建了一个 ConcreteImplementorA 类型的实现类,并传递给 RefinedAbstraction 抽象类,然后调用 operation() 方法,输出了一条消息和 ConcreteImplementorA.operationImp() 方法的结果。

接着,我们创建了一个 ConcreteImplementorB 类型的实现类,并传递给 RefinedAbstraction 抽象类,再次调用 operation() 方法,输出了一条消息和 ConcreteImplementorB.operationImp() 方法的结果。

总结

Java桥接模式可将抽象部分与它的实现部分分离,使它们可以独立地变化。该模式通常用于需要独立变化不同的实现部分时,如操作系统平台和操作系统接口的变化等。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java设计模式之java桥接模式详解 - Python技术站

(0)
上一篇 2023年6月16日
下一篇 2023年6月16日

相关文章

  • 各类常见语言清除网页缓存方法汇总

    各类常见语言清除网页缓存方法汇总 在开发Web应用时,经常会涉及到网页缓存的问题。为了尽可能的保证用户体验,我们需要清除掉网页缓存,使得每次用户访问页面时都能获取最新的数据。本篇文章将针对以下常见语言,为大家汇总清除网页缓存的方法。 HTML 用户访问网站时,浏览器会自动缓存显示的网页,以便下次快速加载。清除浏览器的缓存可以通过以下方法: <meta …

    Java 2023年6月15日
    00
  • 使用idea远程调试jar包的配置过程

    下面详细讲解“使用idea远程调试jar包的配置过程”的完整攻略: 一、环境准备 1.1、服务器环境准备 在远程服务器上安装jdk,并将待调试的jar包上传至服务器。 1.2、本地环境准备 在本地电脑上安装jdk和IntelliJ IDEA。 二、远程配置 2.1、配置服务器启动参数 在远程服务器上启动jar包时,配置启动参数,增加debug模式参数,如下:…

    Java 2023年5月26日
    00
  • SpringBoot集成Kafka 配置工具类的详细代码

    下面我来详细讲解SpringBoot集成Kafka配置工具类的详细代码。 1. 配置maven依赖 首先,我们需要在pom.xml文件中添加以下依赖: <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kaf…

    Java 2023年6月2日
    00
  • 解决Tomcat报404问题大全(包括tomcat可以正常运行但是报404)

    解决Tomcat报404问题大全 1. 检查配置文件 第一步是检查Tomcat的配置文件,确保它们被正确地设置了。注意以下两个配置文件: catalina.properties 这个文件包含了Tomcat的基本设置。在这个文件中,你需要确保以下设置是正确的: common.loader=${catalina.base}/lib,${catalina.base…

    Java 2023年5月20日
    00
  • java开发时各类工具的使用规范

    Java开发时各类工具的使用规范 为了能够让Java开发能够更加高效、规范、易于维护,我们需要掌握各类工具的使用规范。 本文将介绍Java开发常用的各类工具的使用规范,包括:代码提交工具、依赖管理工具、构建工具、单元测试工具和IDE等。 代码提交工具 代码提交是开发的重要环节,在提交代码之前需要进行代码自测,并确保代码风格符合规范。 Git Git是目前最流…

    Java 2023年5月26日
    00
  • spring boot实现文件上传

    介绍 Spring Boot 是构建数千个 Servlet Web 应用程序的首选框架之一。同时,Spring Boot 集成了所有必需的控件,包括 Servlet API,WebSocket,Jackson,Validation,HttpMessageConverters 等。我们可以非常容易地在 Spring Boot 应用程序中扩展或注入新功能。 在本…

    Java 2023年5月31日
    00
  • SpringBoot Logback日志记录到数据库的实现方法

    下面是SpringBoot Logback日志记录到数据库的实现方法的详细攻略: 1. 添加依赖 首先需要在pom.xml文件中添加logback、spring-jdbc和mysql-connector-java的依赖,如下所示: <dependency> <groupId>org.springframework.boot</g…

    Java 2023年5月20日
    00
  • bootstrap自定义样式之bootstrap实现侧边导航栏功能

    下面是关于“bootstrap自定义样式之bootstrap实现侧边导航栏功能”的完整攻略: 什么是Bootstrap? Bootstrap是一种流行的CSS框架,可帮助开发人员快速创建响应式网站。它提供了大量的CSS和JavaScript组件,可以轻松添加到你的网站上。它不仅可以帮助节省开发时间,还可以提高网站的可访问性和易用性。 Bootstrap如何实…

    Java 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部