Java23种设计模式之结构型模式「桥接模式」

桥接模式 - Bridge

  • 用于把抽象化与实现化解耦,使得二者可以独立变化
  • 通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦
  • 这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响
  • 意图: 将抽象部分与实现部分分离,使它们都可以独立的变化
  • 主要解决: 在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活
  • 优点: 1、抽象和实现的分离。 2、优秀的扩展能力。 3、实现细节对客户透明
  • 缺点: 桥接模式的引入会增加系统的理解与设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程
定义一个接口 并 实现不同的业务场景
public interface Product {
    void createProduct(String name, String time);
}

public class ProductA implements Product {
    @Override
    public void createProduct(String name, String time) {
        System.out.println("创建项目A, 项目名称:" + name + ", 项目时间:" + time);
    }
}

public class ProductB implements Product {
    @Override
    public void createProduct(String name, String time) {
        System.out.println("创建项目B, 项目名称:" + name + ", 项目时间:" + time);
    }
}
定义一个抽象接口
public abstract class Create {
    protected Product product;

    public Create(Product product) {
        this.product = product;
    }

    public abstract void createProductMethod();
}
实现这个抽象接口
public class CreateProduct extends Create {
    private String name;
    private String time;

    public CreateProduct(Product product, String name, String time) {
        super(product);
        this.name = name;
        this.time = time;
    }

    @Override
    public void createProductMethod() {
        System.out.println("抽象接口特殊的业务实现和接口实现相互分开,互不影响");
        System.out.println("这里是桥接的核心, 创建了项目:" + name);
        product.createProduct(name, time);

    }
}
调用
public static void main(String[] args) {
    Create createProductA = new CreateProduct(new ProductA(), "项目A", "1天");
    createProductA.createProductMethod();

    Create createProductB = new CreateProduct(new ProductB(), "项目B", "5天");
    createProductB.createProductMethod();
}
输出
抽象接口特殊的业务实现和接口实现相互分开,互不影响
这里是桥接的核心, 创建了项目:项目A
创建项目A, 项目名称:项目A, 项目时间:1天
抽象接口特殊的业务实现和接口实现相互分开,互不影响
这里是桥接的核心, 创建了项目:项目B
创建项目B, 项目名称:项目B, 项目时间:5
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值