本文介绍: 桥接模式(Bridge Pattern)是一种结构型设计模式,用于将抽象部分与其实现部分分离,使它们可以独立地变化。这种模式通过创建一个桥接接口,将抽象类和其实现类解耦,使得修改或扩展独立的抽象和实现变得更加容易。抽象化(Abstraction)定义抽象类的接口。它保持一个指向实现化对象的引用,并且由子类实现这个接口。精化抽象化(Refined Abstraction)扩展或细化由抽象化定义的接口。实现化(Implementor)定义实现类的接口。
定义:
桥接模式(Bridge Pattern)是一种结构型设计模式,用于将抽象部分与其实现部分分离,使它们可以独立地变化。这种模式通过创建一个桥接接口,将抽象类和其实现类解耦,使得修改或扩展独立的抽象和实现变得更加容易。
解决的问题:
总之,桥接模式通过建立一个桥梁,连接抽象层次和实现层次,使得两者的变化可以独立进行。这种模式在设计系统时非常有用,特别是当系统需要在多个维度上变化和扩展时。
使用场景:
示例代码 1 – 概念实现:
// 抽象化角色
public abstract class Abstraction {
protected Implementor implementor;
protected Abstraction(Implementor implementor) {
this.implementor = implementor;
}
public abstract void operation();
}
// 具体抽象化角色
public class RefinedAbstraction extends Abstraction {
protected RefinedAbstraction(Implementor implementor) {
super(implementor);
}
@Override
public void operation() {
implementor.operationImpl();
}
}
// 实现化角色
public interface Implementor {
void operationImpl();
}
// 具体实现化角色
public class ConcreteImplementorA implements Implementor {
@Override
public void operationImpl() {
System.out.println("ConcreteImplementorA operation.");
}
}
public class ConcreteImplementorB implements Implementor {
@Override
public void operationImpl() {
System.out.println("ConcreteImplementorB operation.");
}
}
示例代码 2 – 实际应用示例:
假设有一个设备管理系统,需要控制不同品牌的电视机和不同类型的遥控器。
// 设备接口(实现化角色)
public interface Device {
void turnOn();
void turnOff();
void setChannel(int channel);
}
// 遥控器抽象类(抽象化角色)
public abstract class RemoteControl {
protected Device device;
protected RemoteControl(Device device) {
this.device = device;
}
public abstract void togglePower();
}
// 具体遥控器(细化抽象化角色)
public class AdvancedRemoteControl extends RemoteControl {
public AdvancedRemoteControl(Device device) {
super(device);
}
@Override
public void togglePower() {
// 实现切换电源的功能
}
public void mute() {
// 实现静音功能
}
}
// 具体设备实现(具体实现化角色)
public class TV implements Device {
@Override
public void turnOn() {
// 实现打开电视机
}
@Override
public void turnOff() {
// 实现关闭电视机
}
@Override
public void setChannel(int channel) {
// 实现切换频道
}
}
主要符合的设计原则:
- 开闭原则(Open-Closed Principle):
- 组合优于继承(Composition over Inheritance):
- 单一职责原则(Single Responsibility Principle):
- 最少知识原则(Principle of Least Knowledge):
在JDK中的应用:
虽然在JDK中这些例子并不总是被显式标记为桥接模式的应用,但它们确实使用了桥接模式的核心理念:将抽象和实现分离开来,使得它们可以独立地变化。
在Spring中的应用:
虽然这些例子并不是桥接模式的典型应用,但它们在设计上确实采用了桥接模式的核心思想:通过提供统一的接口(抽象)并将具体的实现细节(实现)分离出去,从而增加了系统的灵活性和可扩展性。
原文地址:https://blog.csdn.net/haoxin963/article/details/134571197
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_30720.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。