设计模式-桥接模式04

什么是桥接模式?

桥接模式就是把事物的两个方面(两个变化的维度)分开管理,让它们可以分别自由变化,然后通过一个“桥”把它们连接起来。


举个生活中的例子

想象一下你在买鞋子:

  • 鞋子有不同的款式(比如运动鞋、皮鞋、凉鞋)
  • 鞋子有不同的颜色(比如黑色、白色、红色)

如果你每一种款式都做每一种颜色,会有很多种组合,比如:

  • 黑色运动鞋
  • 白色运动鞋
  • 黑色皮鞋
  • 红色凉鞋
  • ……
    这样鞋子的种类就会变得特别多,管理起来很麻烦。

桥接模式的做法是:

  • 把“款式”和“颜色”分开,分别设计
  • 生产鞋子的时候,把某种款式和某种颜色组合起来

这样,不管以后增加新的款式还是颜色,都不会影响另一边,也不会导致组合数量爆炸。


用程序举例

比如你要发消息,有两种维度:

  • 消息类型:普通消息、加急消息
  • 发送方式:短信、邮件

如果不用桥接模式,你可能会写很多类:
普通短信、普通邮件、加急短信、加急邮件……

用桥接模式,你只需要:

  • 把消息类型和发送方式分开
  • 需要的时候组合在一起

代码会变成这样(伪代码):

// 发送方式接口
interface Sender {
    void send(String msg);
}

// 两种发送方式
class SmsSender implements Sender { ... }
class EmailSender implements Sender { ... }

// 消息类型抽象
abstract class Message {
    protected Sender sender;
    public Message(Sender sender) { this.sender = sender; }
    public abstract void send(String msg);
}

// 两种消息类型
class NormalMessage extends Message { ... }
class UrgentMessage extends Message { ... }

这样你可以任意组合:

  • 普通消息用短信发
  • 加急消息用邮件发
  • 普通消息用邮件发……

总结一句话

桥接模式就是把“事物的两个变化点”分开,分别设计,然后通过桥(组合)连接起来,方便自由扩展和组合,避免重复和类爆炸。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值