JAVA设计模式——桥接模式

本文介绍了一种设计模式——桥接模式,它通过将抽象部分与其实现部分分离,使两者可以独立变化。文章通过实例说明了如何使用接口作为桥梁,实现类实现方法,抽象类持有接口对象,并通过其子类调用接口方法。

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

桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立的变化。
并不是说,让抽象类与其派生类分离,因为这没有任何意义。实现指的是抽象类和它的派生类用来实现自己的对象。

实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让它们独立变化,减少它们之间的耦合。

当发现需要多角度去分类实现对象,只用继承会造成大量的类增加,要考虑使用桥接模式。

桥接模式结构图

接口作为桥,接口实现类实现相应方法,抽象类作为具体实现,抽象类有接口对象属性,抽象类子类实现抽象方法,在方法中去调用接口的方法。

/**
 * 手机软件接口,作为桥
 */
public interface Soft {
    void run(); //运行软件的方法
}
/**
 * 游戏软件
 */
public class SoftGame implements Soft{
    @Override
    public void run() {
        System.out.println("运行手机游戏");
    }
}
/**
 * 音乐软件
 */
public class SoftMusic implements Soft{
    @Override
    public void run() {
        System.out.println("运行手机音乐软件");
    }
}
/**
 * 抽象手机品牌
 */
public abstract class Brand {
    private Soft soft;
    public Soft getSoft() {
        return soft;
    }
    public void setSoft(Soft soft) {
        this.soft = soft;
    }
    public abstract void run(); //运行
}
/**
 * M品牌手机
 */
public class BrandM extends Brand{
    @Override
    public void run() {
        System.out.println("M手机运行中···");
        this.getSoft().run();
    }
}
/**
 * N品牌手机
 */
public class BrandN extends Brand {
    @Override
    public void run() {
        System.out.println("N手机运行中···");
        this.getSoft().run();
    }
}
public class Main {
    public static void main(String[] args) {
        Brand m = new BrandM();
        m.setSoft(new SoftGame());
        m.run();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值