JAVA设计模式——桥接模式

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

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

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

桥接模式结构图

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

/**
 * 手机软件接口,作为桥
 */
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();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值