设计模式学习(八):桥接模式
设计模式学习(八):桥接模式
作者:Grey
原文地址:
桥接模式#
桥接模式是一种结构型模式。它将抽象部分和实现部分分离,使他们可以独立地变化。
使用桥接模式,可以将抽象和具体的发展单独分支(即:抽象中持有一个具体的引用)
举例说明:
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示例图如下:
如果说代理模式是一个类与另一个类的组合,那么桥接模式是一组类和另外一组类的组合。
桥接模式的应用
JDBC 驱动配置
当我们把具体的 Driver 实现类(比如:
com.mysql.jdbc.Driver
)注册到 DriverManager 之后,后续所有对 JDBC 接口的调用,都会委派到对具体的 Driver 实现类来执行。而 Driver 实现类都实现了相同的接口(java.sql.Driver
),这也是可以灵活切换 Driver 的原因。
UML 和 代码#
更多#
参考资料#
作者:GreyZeng
出处:https://www.cnblogs.com/greyzeng/p/16876722.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
你可以在这里自定义其他内容
本文来自博客园,作者:Grey Zeng,转载请注明原文链接:https://www.cnblogs.com/greyzeng/p/16876722.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程