简易的设计模式——桥梁模式

定义

将抽象和实现解耦,使得两者可以独立地变化。

桥梁模式

4个角色

在抽象模式中有4个不同的角色。

  1. 抽象化角色 Abstracttion
  2. 实现化角色 Implementator
  3. 修正抽象化 RefinedAbstraction
  4. 具体实现化角色 ConcreteImplementator

抽象角色引用实现化角色

代码实现

Abstracttion.java

public abstract class Abstracttion {

    private Implementator implementator;

    public Abstracttion(Implementator implementator ){
        this.implementator = implementator;
    }

    public void request(){
        this.implementator.doSomething();
    }

    public Implementator getImp(){
        return this.implementator;
    }

}

RefinedAbstraction.java

public class RefinedAbstraction extends Abstracttion {

    public RefinedAbstraction(Implementator implementator) {
        super(implementator);
    }

    @Override
    public void request() {
        super.request();
        super.getImp().doAnything();
    }
}


Implementator.java

public interface Implementator {
    //basic method
    public void doSomething();
    public void doAnything();
}

ConcreteImplementator1.java

public class ConcreteImplementator1 implements Implementator {
    @Override
    public void doSomething() {
        //实现业务
    }

    @Override
    public void doAnything() {
        //实现业务
    }
}

ConcreteImplementator2.java

public class ConcreteImplementator2 implements Implementator{
    @Override
    public void doSomething() {
        //实现业务
    }

    @Override
    public void doAnything() {
        //实现业务
    }
}

桥梁模式的优点

  • 抽象和实现分离:

    实现可以不受抽象的约束,不用被绑定在一个固定的抽象层次上面。

  • 优秀的扩展能力:

    想要增加也没有问题

  • 实现细节对客户透明:

    客户不用关心细节实现,它已经由抽象层通过聚合关系完成了封装。

posted @   whthomas  阅读(210)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示