背景
金雀花作战之后,我方损失惨重,钢铁号舰长不幸牺牲,古铁被夺魂者切成两半,直接报废,所幸响介没有受伤。
古铁工厂很早就开始研发新一代古铁,代号古铁巨人,机体整体性能较古铁有质的提升。本来应该早点把古铁淘汰掉,换上古铁巨人,无奈响介是个偏执狂,喜旧厌新,看来这次不换机体也不行了。
最近响介在试驾古铁巨人,发现了一个很严重的问题,驾驶舱的操控和以前的古铁完全不一样,学习成本较大,而近期战争局势严峻,没有那么多时间去练习操纵,于是,响介就向古铁工厂研发博士吐槽。
响介:博士,还是用回原来的古铁吧。这个古铁巨人用着扎心。
博士:这个没办法哦。古铁几年前就已经停产了,你就将就用下吧。
响介:但是现在是紧要关头,我哪有那么多精力去重新学习古铁巨人的操控。
博士:嗯。这是一个问题,其实我们一开始就考虑到这方面的问题。为了方面旧机师的操作,我们开发了古铁到古铁巨人的适配器,但是体验效果可能没有原装的好。不过还是得试试看…
实现
古铁
/**
* 古铁
*/
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();
}
}
测试结果
使用古铁而不是古铁巨人的操作,看看什么效果?
回旋破壁器!(左轮打桩机的加强版)
崩发性地雷!(指向性地雷的加强版)
小结
响介:嗯,感觉比以前好操作了,武器威力的确更大。看样子我已经习惯了新机体的操作了。不过,新机体驾驶舱油漆味太重,有点晕机~~
博士:你习惯就好~~
总结
适配器模式,感觉用这个例子不是很贴切,将就看看…