定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。
看起来很懵哈,大概意思应该是,我打算去做一件事情,然后定制了A计划、B计划、C计划,每一个计划都是一种策略
class Commute {
constructor(vehicle) {
this.vehicle = vehicle
}
setOut(distance) {
console.log(this.vehicle.move(distance))
}
}
class Vehicle {
constructor(money, speed) {
this.money = money
this.speed = speed
}
}
class Bicycle extends Vehicle {
constructor(money, speed) {
super(money, speed)
}
move(distance) {
const time = distance / this.speed
return `耗时${time}分钟,花费${this.money}`
}
}
class ElectricBicycle extends Vehicle {
constructor(money, speed) {
super(money, speed)
}
move(distance) {
const time = distance / this.speed
return `耗时${time}分钟,花费${ (parseInt(time / 5) * this.money) + this.money }`
}
}
const commuteBicycle = new Commute(new Bicycle(2, 10))
const commuteElectricBicycle = new Commute(new ElectricBicycle(2, 20))
commuteBicycle.setOut(100)
commuteElectricBicycle.setOut(100)