当前位置: 首页 > news >正文

做素材网站如何赚钱wordpress免登录支付宝

做素材网站如何赚钱,wordpress免登录支付宝,下载网站cms,南通网站流量优化1、模式标准 模式名称:责任链模式 模式分类:行为型 模式意图:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处…

1、模式标准

模式名称:责任链模式

模式分类:行为型

模式意图:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

结构图:

适用于:

1、有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定。
2、想在不明确指定接收者的情况下向多个对象中的一个提交一个请求。
3、可处理一个请求的对象集合应被动态指定 

2、分析与设计

前面我们了解了命令模式,命令是谁发出的呢,这里引出的责任链模式,巧好可以用上。将一次请技能释放求通过一串责任(命令)链接起来,不同责任(命令)做出不同的技能释放命令。我们假设场上有5个敌对单位时,ai单位释放小技能;有小于10个大于5个敌对单位时,ai单位释放中技能,有10个以上敌对单位时,ai单位释放大技能。

意图:使多个对象(命令)都有机会处理(技能释放)请求,从而避免(技能释放)请求的发送者和接收者之间的耦合关系。将这些对象(命令)连成一条链,并沿着这条链传递该(技能释放)请求,直到有一个对象(命令)处理它为止。

3、开始打造

技能触发基类


export interface ITrigger {nextTrigger: ITriggercommand: ICommandsetNextTrigger(trigger: ITrigger): voidentryTrigger(param: any): voidcanTrigger(param: any): boolean
}export abstract class SkillTrigger implements ITrigger {nextTrigger: ITriggercommand: ICommandsetNextTrigger(trigger: ITrigger): void {this.nextTrigger = trigger;}setCommand(command: ICommand): void {this.command = command;}entryTrigger(skillTriggerRequest: ISkillTriggerRequest): void {console.log('entryTrigger', skillTriggerRequest, this)if (this.canTrigger(skillTriggerRequest)) {if (this.command) {this.command.execute();}} else if (this.nextTrigger) {this.nextTrigger.entryTrigger(skillTriggerRequest);} else {console.log("无其他触发器");}}abstract canTrigger(skillTriggerRequest: ISkillTriggerRequest): boolean;
}

 小技能,中技能,大技能

// 小技能触发器
export class SmallSkillTrigger extends SkillTrigger {canTrigger(skillTriggerRequest: ISkillTriggerRequest): boolean {return skillTriggerRequest.enemyCount < 5; // 敌对单位数量小于5时释放小技能}
}// 中技能触发器
export class MediumSkillTrigger extends SkillTrigger {canTrigger(skillTriggerRequest: ISkillTriggerRequest): boolean {return skillTriggerRequest.enemyCount >= 5 && skillTriggerRequest.enemyCount < 10; // 敌对单位数量在5到10之间时释放中技能}
}// 大技能触发器
export class LargeSkillTrigger extends SkillTrigger {canTrigger(skillTriggerRequest: ISkillTriggerRequest): boolean {return skillTriggerRequest.enemyCount >= 10; // 敌对单位数量大于等于10时释放大技能}
}

技能命令

// 具体技能命令类 - 小技能
export class SmallSkillCommand implements ICommand {execute(): void {console.log("释放小技能");}
}// 具体技能命令类 - 中技能
export class MediumSkillCommand implements ICommand {execute(): void {console.log("释放中技能");}
}// 具体技能命令类 - 大技能
export class LargeSkillCommand implements ICommand {execute(): void {console.log("释放大技能");}
}

4、开始使用

// 创建责任链
const smallSkillTrigger = new SmallSkillTrigger();
const mediumSkillTrigger = new MediumSkillTrigger();
const largeSkillTrigger = new LargeSkillTrigger();// 创建命令
const smallSkillCommand = new SmallSkillCommand();
const mediumSkillCommand = new MediumSkillCommand();
const largeSkillCommand = new LargeSkillCommand();// 设置触发器的命令
smallSkillTrigger.setCommand(smallSkillCommand);
mediumSkillTrigger.setCommand(mediumSkillCommand);
largeSkillTrigger.setCommand(largeSkillCommand);smallSkillTrigger.setNextTrigger(mediumSkillTrigger);
mediumSkillTrigger.setNextTrigger(largeSkillTrigger);let param = {enemyCount: 8
}
smallSkillTrigger.entryTrigger(param);
// 输出
// 释放中技能

http://www.yayakq.cn/news/620542/

相关文章:

  • 长沙好的网站建设品牌合肥专门做网站
  • 类似稿定设计的网站简单的网站开发模板
  • 做自己视频教程的网站网站建设合同 代码应不应该给
  • 可视网站开发工具每天三分钟新闻天下事
  • 郑州企业网站开发深圳商标注册公司
  • 网站制作网站开发设计公司的网站详情
  • 温州网站建设培训学校wordpress开发文档pdf
  • 阜南做网站公司长春制作网站企业
  • app 移动网站建设东莞寮步华衍学校
  • 苏州创元投资集团网站wordpress主题制作下载
  • 重庆巴南区网站开发公司服务器上构建企业网站
  • 阿里云搭建网站教程ppt模板大全免费简约大气
  • 响应式网站设计图备案的网站名称可以改吗
  • 四川省省建设厅网站九牧全球市场地位
  • 安徽网站建设产品介绍网站开发需要准备什么软件
  • 宁波网络公司做网站新东方烹饪学校学费价目表
  • 广州专业网站优化公司网站要能被搜到需要做推广嘛
  • 做盗版电影网站wordpress主题英文改中文
  • 山东省住房和城乡建设局网站首页西安网站建设xs029
  • 晋州住房保障建设局网站wordpress多用户博客
  • 中山网站外包太原再次发出通告
  • 免费网站的app怎么让网站排名下降
  • wordpress 颜色选择器关键词排名优化到首页
  • 网站建设入账哪个科目常熟滨江开发区人才网
  • 天津网站优化公司电话软件制作开发
  • php个人网站源码下载什么网站可以做海报
  • 网站搜索引擎优化案例南宁市网站维护与推广公司
  • 阿里巴巴运营每天必做seo推广是做什么
  • 各大网站图片天辰工程信息网
  • 龙华做棋牌网站建设找哪家效益快贵州省建设厅网站首页