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

建网站在哪里做广告上海 网站撤销备案

建网站在哪里做广告,上海 网站撤销备案,什么是微信wordpress,wordpress 笔记本主题下载失败1、模式标准 模式名称#xff1a;观察者模式 模式分类#xff1a;行为型 模式意图#xff1a;定义对象间的一种一对多的依赖关系#xff0c;当一个对象的状态发生改变时#xff0c;所有依赖于它的对象都得到通知并被自动更新。 结构图#xff1a; 适用于#xff1a;…1、模式标准 模式名称观察者模式 模式分类行为型 模式意图定义对象间的一种一对多的依赖关系当一个对象的状态发生改变时所有依赖于它的对象都得到通知并被自动更新。 结构图 适用于 1、当一个抽象模型有两个方面其中一个方面依赖于另一个方面将这两者封装在独立的对象中以使它们可以各自独立地改变和复用。 2、当对一个对象的改变需要同时改变其他对象而不知道具体有多少对象有待改变时。 3、当一个对象必须通知其他对象而它又不能假定其他对象是谁即不希望这些对象是紧耦合的  2、分析与设计  观察者模式的主要使用场景是gui、网络服务器、发布订阅系统。在前面的设计模式中我们采用了代理模式通过“代理拦截修改”实现了数据层和视图层之间的响应式。虽然实现了响应式但是其中的数据不是真实的数据源。真实数据源发生变化时还需要通过xhgame.vm.gateVM.ps 123来手动触发修改。我们希望的数据自动监听真实数据源的变化自动触发响应式。下面我们通过观察者模式来实现它在游戏框架里我们统一使用modelComp中的数据源先修改一下我们的意图 意图定义对象(modelComp)间的一种一对多的依赖关系当一个对象modelComp的状态发生改变时所有依赖于它的对象都得到通知并被自动更新。 3、开始打造 主题接口 export interface ISubject {observers: IObserver[]attach(observer: IObserver): voiddetach(observer: IObserver): voidnotify(): void } 观察者接口 export interface IObserver {update(subject: ISubject): void } 这里新增一个modelComp 的抽象类继承之前的ecs中Comp export abstract class ModelCompT extends Comp implements ISubject {callback: Function nullreset(): void {}onAttach(entity: Entity) {}onDetach(entity: Entity) {}// 观察者模式observers: IObserver[] []attach(observer: IObserver): void {const isExist this.observers.includes(observer);if (isExist) {return console.log(已存在监听者);}this.observers.push(observer);}detach(observer: IObserver): void {const observerIndex this.observers.indexOf(observer);if (observerIndex -1) {return console.log(不存在监听者);}this.observers.splice(observerIndex, 1);}notify(): void {console.log(ModelSubject notify)for (const observer of this.observers) {observer.update(this);}}} 接着是具体的主题玩家的modelComp export class PlayerModelComp extends ModelCompIPlayerInfo_JCQ {callback: Function null_playerInfo: IPlayerInfo_JCQ {id: 0,openid: ,server_no: ,platform: ,ps: 0,gold: 0,diamond: 0,last_battle_id: 0}get playerInfo() {return this._playerInfo}set playerInfo(val) {this._playerInfo valthis.notify()}reset() {this.callback nullthis._playerInfo {id: 0,openid: ,server_no: ,platform: ,ps: 0,gold: 0,diamond: 0,last_battle_id: 0}// this.observers []}onAttach(entity: Entity) {this.callback this.callback()}onDetach(entity: Entity) {} } 设置一个玩家信息的监听者 export class PlayerInfoObserver implements IObserver {update(subject: PlayerModelComp): void {const playerInfo subject.playerInfoxhgame.vm.gateVM.ps playerInfo.psxhgame.vm.gateVM.gold playerInfo.goldxhgame.vm.gateVM.diamond playerInfo.diamond} } 4、开始使用 export class JCQPlayerEntity extends Entity {model: PlayerModelCompinit() {this.model this.attachComponent(PlayerModelComp)}} 对playerModelComp添加多个监听者  xhgame.game.playerEntity.model.attach(new PlayerInfoObserver()) xhgame.game.playerEntity.model.attach(new OtherObserver()) 观察者内原本有自己的state或者info,现在用了vm来代替了 export class PlayerInfoObserver implements IObserver {update(subject: PlayerModelComp): void {const playerInfo subject.playerInfoxhgame.vm.gateVM.ps playerInfo.psxhgame.vm.gateVM.gold playerInfo.goldxhgame.vm.gateVM.diamond playerInfo.diamond} }
http://www.zqtcl.cn/news/140544/

相关文章:

  • 个人可以备案几个网站做网站和网站页面设计
  • 拉丝机东莞网站建设下载安装百度一下
  • 河北建设厅官方网站山西手动网站建设推广
  • 连云港网站建设开发网络营销顾问服务
  • 怎么做网站免有什么网站可以免费建站
  • 安全的营销型网站建设深圳网站建设哪家
  • wordpress能开发商城网站吗seo软件
  • 广东网站建设制作价格低网页升级访问中每天正常更新中
  • 北京市门头沟有没有做网站的小水库运行管理培训教材久久建筑网
  • 免费手机网站app软文推广发稿
  • 安徽网站制作公司建设银行校招网站入口
  • 专业的网站公司到哪里找会员网站模板
  • 山西城乡和建设厅网站首页应用公园下载
  • 自动优化网站建设电话wordpress 后端
  • 淘客网站怎么做啊做网站是什么工作
  • 新媒体 网站建设 管理规范专门卖医疗器械的网站
  • 高水平建设专业网站微商城网站建设平台合同
  • 策划的网站在哪个网站做一照一码
  • wordpress页面如何排序网站优化推广软件
  • 网站描述和关键词怎么写智慧团建网站pc端
  • 苏州营销型网站建设推广医院做网站备案需要哪些资料
  • 怎么看是哪家做的网站呼市浩特网站建设
  • 如何建设淘宝客网站全网营销包括什么
  • 网站建设服务市场广州市几个区
  • 二手网站建设论文答辩校园官方网站如何制作
  • 高科技展厅效果图设计商丘 峰少 seo博客
  • 太原网站优化工具方法广州天河 网站建设
  • 西安市做网站公司有哪些秦皇岛网站制作
  • 用ps做美食网站河北网站设计制作
  • 怎么做自己网站的APIwordpress memcache