设计模式学习(八):桥接模式

设计模式学习(八):桥接模式

作者:Grey

原文地址:

博客园:设计模式学习(八):桥接模式

CSDN:设计模式学习(八):桥接模式

桥接模式

桥接模式是一种结构型模式。它将抽象部分和实现部分分离,使他们可以独立地变化。

使用桥接模式,可以将抽象和具体的发展单独分支(即:抽象中持有一个具体的引用)

举例说明:

GG 在追 MM 的时候,可以送书和花两种礼物

public class GG {
    public void chase(MM mm) {
        Gift g = new WarmGift(new Flower());
        give(mm, g);
    }

    public void give(MM mm, Gift g) {
        System.out.println(g + "gived!");
    }
}

public abstract class Gift {
    protected GiftImpl impl;
}

public class WarmGift extends Gift {
    public WarmGift(GiftImpl impl) {
        this.impl = impl;
    }
}

public class GiftImpl {}

public class Flower extends GiftImpl {}

如上代码,礼物 Flower 被包装成了一个 WarmGift 送给 MM ,WarmGift 和 WildGift 都是 Gift 的一种抽象,Flower 和 Book 都算 Gift 的一种具体实现,

我们让 Gift 这个抽象类中,持有一个 GiftImpl 的引用

UML示例图如下:

image

如果说代理模式是一个类与另一个类的组合,那么桥接模式是一组类和另外一组类的组合。

桥接模式的应用

JDBC 驱动配置

当我们把具体的 Driver 实现类(比如: com.mysql.jdbc.Driver)注册到 DriverManager 之后,后续所有对 JDBC 接口的调用,都会委派到对具体的 Driver 实现类来执行。而 Driver 实现类都实现了相同的接口(java.sql.Driver),这也是可以灵活切换 Driver 的原因。

UML 和 代码

UML 图

代码

更多

设计模式学习专栏

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GreyZeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值