里氏替换原则
里氏替换原则LSP
要求:
子类能够覆盖父类;父类能够出现的地方子类就能够出现
需求:
一款游戏平台,支持手机端与PC端
// sprint1
class Game {
start() {
// 开机
}
shutdown() {
// 关机
}
play() {
// 开始游戏
}
}
//PC端游戏
const game = new Game();
game.play();
// sprint2
// 手机端游戏
class MobileGame extends Game {
tombStore() {
// tombStore
}
play() {
// 开始移动端游戏
}
}
const mobileGame = new MobileGame();
mobileGame.play();
不满足里氏替换原则 :父类出现的地方字子类就能够出现
重构
// 重构
class Game {
start() {
// 开机
}
shutdown() {
// 关机
}
}
class MobileGame extends Game {
tombStore() {
// tombStore
}
play() {
// 开始移动端游戏
}
}
class PCGame extends Game {
speed() {
// speed
}
play() {
// 开始PC游戏
}
}