Java设计模式-桥接模式

背景

机战中,机体在使用过程中难免会损耗,当损耗到一定程度时,机体就无法正常运作,影响作战的效率。每支作战部队都有一支后勤修理队,职责是对机体进行修理。正常的修理分为两种:Hp修理(Hp就是血量的意思)和En修理(En就是能量的意思)。我们来看看后勤修理队是怎么帮助机体恢复生命力的吧!

实现

机体抽象类

public abstract class Robot {

    private MainTain mainTain;

    public MainTain getMainTain() {
        return mainTain;
    }

    public void setMainTain(MainTain mainTain) {
        this.mainTain = mainTain;
    }

    /**
     * 修理机体
     */
    public abstract void repair();

}

古铁

public class AncientIron extends Robot {
    
    @Override
    public void repair() {
        super.getMainTain().mainTain();
    }

}

修理接口

/**
 * 维修接口
 */
public interface MainTain {

    /**
     * 维修
     */
    void mainTain();
    
}

Hp修理

public class HpMainTain implements MainTain {

    @Override
    public void mainTain() {
        System.out.println("补充HP。满血复活!");
    }

}

En修理

public class EnMainTain implements MainTain {

    @Override
    public void mainTain() {
        System.out.println("补充能量。扶我起来,我还可以再战两年!");
    }

}

测试

public class Test {

    public static void main(String[] args) {
        Robot robot = new AncientIron();
        System.out.println("古铁HP不足,赶紧补血!");
        robot.setMainTain(new HpMainTain());
        robot.repair();
        System.out.println("---------------------");
        System.out.println("古铁能量不足,赶紧补能量!");
        robot.setMainTain(new EnMainTain());
        robot.repair();
    }
    
}

测试结果

古铁HP不足,赶紧补血!
补充HP。满血复活!
---------------------
古铁能量不足,赶紧补能量!
补充能量。扶我起来,我还可以再战两年!
总结

上面的例子是不是跟策略模式很像?博主我也对桥接模式和策略模式傻傻分不清。桥接模式关注的是抽象与实现的解耦,策略模式是为了方便替换算法。针对这个例子,我的理解是,如果改成策略模式,应该对怎么补充Hp进行多种算法的实现。比如:快速补充Hp,正常补充Hp或者高效补充Hp。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值