需求
坦克的射击距离,可以是70公里,也可以是50公里,这里给坦克换不同的策略,用以执行不同的机能。
运行
代码
console.log('策略模式');
class StrategySort {
constructor(specification) {
this.specification = specification;
}
exe() {
console.log("射击距离:" + this.specification);
}
}
class B70Sort extends StrategySort {
constructor() {
super(70);
}
}
class B50Sort extends StrategySort {
constructor() {
super(50);
}
}
class Tank {
constructor() {
this.stragegy = null;
}
exe() {
if (this.stragegy != null) {
this.stragegy.exe();
}
}
}
// 客户端
class Client {
main() {
var tank = new Tank();
tank.stragegy = new B70Sort();
tank.exe();
tank.stragegy = new B50Sort();
tank.exe();
}
}
var client = new Client();
client.main();