java设计模式_桥接模式

本文介绍了桥接模式,其核心是将抽象部分与实现分离,使二者可独立变化,以减少耦合。文中给出桥接模式的结构图,介绍了其角色,如实现类接口、具体实现类等,并以手机品牌和软件为例进行比喻,最后给出了实例实现步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

桥接模式

1.桥接模式概念:将抽象部分与它的实现分离,使它们可以独立变化。通俗点讲实现系统可能有多种角度分类每一种分类都有可能化,那么将多角度分离出来让它们独立变化,减少它们之间的耦合。

2.桥接模式的结构图

桥接模式的角色:

  • Implementor,实现类接口。

  • ConcreteImplementor,具体实现类。

  • Abstraction,抽象类。

  • RefinedAbstraction,扩充抽象类。

从图可以看出桥接模式拥有一个抽象类,以及具体抽象类(多种),以及实现类的接口以及具体实现,实现类接口聚合到抽象类。比喻一下我们可以把抽象类比作手机品牌类,具体手机类有(华为,小米...),实现接口比作手机软件接口,具体实现由(游戏,电话联系人,音乐..等各个不同软件),手机软件可以算手机的一个可变的模块我们把它单独分离出来它自己变化然后聚合到手机上。这就是桥接模式的做法。。。

3.实例实现

(1)手机品牌类

abstract class MobileBrand {//抽象手机类
    protected MobileSoft mobileSoft;

    public void setMobileSoft(MobileSoft mobileSoft) {//设置软件
        this.mobileSoft = mobileSoft;
    }
    public abstract  void  run();//执行方法
}

(2)具体手机类

public class HaweiMobile extends MobileBrand {
    @Override
    public void run() {
        mobileSoft.run();
    }
}
public class XiaomiMobile extends  MobileBrand {
    @Override
    public void run() {
        mobileSoft.run();
    }
}

(3)手机软件接口

public interface MobileSoft {
    public  void run();
}

(4)具体软件实现

public class CallSoft implements MobileSoft{
    @Override
    public void run() {
        System.out.print("运行通讯软件");
    }
}
public class GameSoft implements MobileSoft{
    @Override
    public void run() {
        System.out.print("运行手机游戏");
    }
}

(5)调用

public class Test {
    public static void main(String[] args){
        MobileBrand huawei=new HaweiMobile();
        huawei.setMobileSoft(new GameSoft());
        huawei.run();

        MobileBrand xiaomi=new XiaomiMobile();
        xiaomi.setMobileSoft(new CallSoft());
        xiaomi.run();
    }
}
通过实例我们应该能发现桥接模式的原理以及用法。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值