桥梁设计模式

桥梁模式定义

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

使用场景

1、电视机顶盒:

电视机顶盒将电视机和网络进行解耦,使得它们可以独立变化,实现了电视节目的网络化传输。

2、蓝牙耳机:

蓝牙耳机将手机和耳机进行解耦,使得它们可以独立变化,实现了无线通信的便利。

3、智能家居:

智能家居将家庭设备和智能控制系统进行解耦,使得它们可以独立变化,实现了家居智能化的目标。

4、电商平台:

电商平台将买家和卖家进行解耦,使得它们可以独立变化,实现了线上交易的便利。

5、总结:

总之,桥梁模式在生活中有很广泛的应用,可以将不同的对象进行解耦,使它们可以独立变化,从而提高系统的灵活性和可扩展性。

角色定义

Abstraction-抽象化角色:

它的主要职责是定义出该角色的行为,同时保存一个对实现化角色的引用,该角色般是抽象类

Implementor实现化角色:

它是接口或者抽象类,定义角色必需的行为和属性

RefinedAbstraction:

一修正抽象化角色: 它引用实现化角色对抽象化角色进行修正

Concretelmplementor:

一具体实现化角色: 它实现接口或抽象类定义的方法和属性

需求背景

使用桥梁模式实现电商平台将买家和卖家进行解耦

1、首先,定义抽象化角色(Abstraction):

平台,提供了一些方法,用于处理买家和卖家之间的交流。具体实现化角色(Concretelmplementor):买家和卖家,实现了平台提供的方法。

2、接下来,定义实现化角色(lmplementor):

交流方式,包括文字、语音、视频等多种方式。

3、修正抽象化角色(RefinedAbstraction):

具体的交流方式,比如文字交流、语音交流、视频交流等。

4、代码实现如下:

4.1 抽象化角色:平台
// 抽象化角色:平台
abstract class Platform {
    protected Implementor implementor;

    public void setImplementor(Implementor implementor) {
        this.implementor = implementor;
    }

    public void communicate() {
        implementor.communicate();
    }
}
4.2 实现化角色:交流方式
// 实现化角色:交流方式
interface Implementor {
    void communicate();
}
4.3 具体实现化角色:买家

4.4 具体实现化角色:卖家
// 具体实现化角色:买家
class Buyer implements Implementor {
    public void communicate() {
        System.out.println("使用文字交流");
    }
}
4.5 具体实现化角色:卖家
// 具体实现化角色:卖家
class Seller implements Implementor {
    public void communicate() {
        System.out.println("使用语音交流");
    }
}
4.6 修正抽象化角色:具体的交流方式
// 修正抽象化角色:具体的交流方式
class TextCommunication extends Platform {
    public void communicate() {
        System.out.println("买家和卖家使用文字交流");
        implementor.communicate();
    }
}
class VoiceCommunication extends Platform {
    public void communicate() {
        System.out.println("买家和卖家使用语音交流");
        implementor.communicate();
    }
}
4.7 测试案例
public class BridgeTest {
    public static void main(String[] args) {
        Platform platform = new TextCommunication();
        platform.setImplementor(new Buyer());
        platform.communicate();

        platform = new VoiceCommunication();
        platform.setImplementor(new Seller());
        platform.communicate();
    }
}
4.8 测试结果如下
买家和卖家使用文字交流
使用文字交流
买家和卖家使用语音交流
使用语音交流
4.9 总结

桥梁模式是一种将抽象部分与具体实现部分分离的设计模式。它通过将实现部分抽象出来,使得它们可以独立地变化,从而达到解耦的目的。在使用桥梁模式时,需要合理使用Abstraction、lmplementor、RefinedAbstraction和Concretelmplementor等角色,以达到最佳的效果。

4.10 解耦体现
4.10.1 在桥梁模式中,平台和交流方式都是抽象化的部分,它们被定义为独立的抽象类。具体实现则由各自的具体类来完成。
4.10.2 在这种设计中,平台和交流方式的具体实现是彼此独立的,它们可以自由组合,不会相互影响。因此,如果需要添加新的平台或交流方式,只需要新增对应的具体类即可,不需要修改原有的代码。
4.10.3 这样,平台和交流方式的解耦就得以实现。即使平台或交流方式发生变化,也不会影响到系统的其他部分,从而提高了系统的灵活性和可维护性。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Run,boy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值