Java设计模式-适配器模式

背景

金雀花作战之后,我方损失惨重,钢铁号舰长不幸牺牲,古铁被夺魂者切成两半,直接报废,所幸响介没有受伤。
古铁工厂很早就开始研发新一代古铁,代号古铁巨人,机体整体性能较古铁有质的提升。本来应该早点把古铁淘汰掉,换上古铁巨人,无奈响介是个偏执狂,喜旧厌新,看来这次不换机体也不行了。
最近响介在试驾古铁巨人,发现了一个很严重的问题,驾驶舱的操控和以前的古铁完全不一样,学习成本较大,而近期战争局势严峻,没有那么多时间去练习操纵,于是,响介就向古铁工厂研发博士吐槽。

响介:博士,还是用回原来的古铁吧。这个古铁巨人用着扎心。
博士:这个没办法哦。古铁几年前就已经停产了,你就将就用下吧。
响介:但是现在是紧要关头,我哪有那么多精力去重新学习古铁巨人的操控。
博士:嗯。这是一个问题,其实我们一开始就考虑到这方面的问题。为了方面旧机师的操作,我们开发了古铁到古铁巨人的适配器,但是体验效果可能没有原装的好。不过还是得试试看…

实现

古铁

/**
 * 古铁
 */
public class AncientIron {

    public void revolverPileDriver() {
        System.out.println("左轮打桩机!");
    }
    
    public void pointerMine() {
        System.out.println("指向性地雷!");
    }
    
}

古铁巨人

/**
 * 古铁巨人:古铁的进阶机体,因为一次战斗中,古铁被夺魂者切成两半,幸好没有破坏到驾驶舱,然而古铁就这样报废了。
 * 古铁工厂研制出了新一代古铁 -- 古铁巨人。
 */
public class AncientIronGiant {

    /**
     * 该武器为左轮打桩机的加强版
     */
    public void circleDestructiveRampart() {
        System.out.println("回旋破壁器!(左轮打桩机的加强版)");
    }
    
    /**
     * 该武器为指向性地雷的加强版
     */
    public void collapseMine() {
        System.out.println("崩发性地雷!(指向性地雷的加强版)");
    }
    
}

古铁适配器

/**
 * 古铁适配器:适配新的机型
 */
public class AncientIronAdaptor extends AncientIron {
    
    private AncientIronGiant ancientIronGiant;
    
    public AncientIronAdaptor(AncientIronGiant ancientIronGiant) {
        super();
        this.ancientIronGiant = ancientIronGiant;
    }
    
    /**
     * 使用原来的操作,但是武器是最新的
     */
    @Override
    public void revolverPileDriver() {
        ancientIronGiant.circleDestructiveRampart();
    }

    /**
     * 使用原来的操作,但是武器是最新的
     */
    @Override
    public void pointerMine() {
        ancientIronGiant.collapseMine();
    }
}

测试

public class Test {

    public static void main(String[] args) {
        AncientIron ancientIron = new AncientIronAdaptor(new AncientIronGiant());
        System.out.println("使用古铁而不是古铁巨人的操作,看看什么效果?");
        ancientIron.revolverPileDriver();
        ancientIron.pointerMine();
    }
    
}

测试结果

使用古铁而不是古铁巨人的操作,看看什么效果?
回旋破壁器!(左轮打桩机的加强版)
崩发性地雷!(指向性地雷的加强版)
小结

响介:嗯,感觉比以前好操作了,武器威力的确更大。看样子我已经习惯了新机体的操作了。不过,新机体驾驶舱油漆味太重,有点晕机~~
博士:你习惯就好~~

总结

适配器模式,感觉用这个例子不是很贴切,将就看看…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值