作用:
父类定义一个整体的模板框架,将具体的方法行为定义到子类中。
模板方法主要是封装行为中的固定部分,同时允许子类对方法进行扩展文章来源:https://www.toymoban.com/news/detail-836773.html
示例:
//moba游戏原型设计方案
class MobaGame{
loadAssets(){
return{
heroList:this.heroList(),
equipmentList:this.equipmentList(),
maps:this.maps()
}
}
heroList(){
throw new Error('具体游戏具体定义英雄')
}
equipmentList(){
throw new Error('具体游戏具体定义装备')
}
maps(){
throw new Error('具体游戏具体定义地图')
}
}
//根据moba游戏模式创建dota
class Dota extends MobaGame{
constructor(){
super()
this.from = '从魔兽争霸单机游戏里进入的,不用账号'
}
heroList(){
return ['末日使者','斧王','圣骑士','敌法师']
}
equipmentList(){
return ['圣剑','阿哈利姆神杖']
}
maps(){
return [{name:'天灾vs近卫地图'}]
}
}
//根据moba游戏模式创建lol
class LOL extends MobaGame{
constructor(code,password){
super()
this.code = code
this.password = password
}
heroList(){
return ['德玛西亚皇子','虚空女皇','刀锋之影','诡术妖姬']
}
equipmentList(){
return ['日炎斗篷','最后的轻语']
}
maps(){
return [{name:'召唤师峡谷'},{name:'扭曲丛林'}]
}
}
//下载war3
let wjt_dota = new Dota()
//加载dota游戏资源
const dotaAssets = wjt_dota.loadAssets()
console.log(dotaAssets,'dota资源')
//下载英雄联盟
let wjt_lol = new LOL('123456','654321')
//加载lol资源
const lolAssets = wjt_lol.loadAssets()
console.log(lolAssets,'lol资源')
文章来源地址https://www.toymoban.com/news/detail-836773.html
到了这里,关于js设计模式:模板方法模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!