[egret+pomelo]实时对战游戏杂记(5)

以前大致了解了pomelo服务端的运行的大致运行流程,下面详细的学习一下在服务端比较重要的一个容器模块bearcat,在bearcat的wiki中咱们能够对其有个大概的了解,在服务端示例的代码中也大量的出现了对bearcat模块的使用。git

如playerHandler.js中:github

module.exports = function (app) {
  //设置bearcat bean
  return bearcat.getBean({
    id: "playerHandler",//惟一Id
    func: PlayerHandler,//所对应的对象
    //参数 至关于调用  var PlayerHandler= function(app){}
    args: [{
      name: "app",
      value: app
    }],
    //依赖注入
    props: [{
      //对象名称
      name: "areaService",
      //引用文件
      ref: "areaService"
    }, {
      name: "dataApiUtil",
      ref: "dataApiUtil"
    }, {
      name: "consts",
      ref: "consts"
    }]
  });
};

总结起来,bearcat有不少功能,在使用上最方便的就是其做为容器,能够在预加载的时候,将代码中的全部模块进行封装,让咱们能够根据模块的id,轻松的对模块功能进行调用,不用再去想模块文件的位置来作“require(xxx)”或实例化操做app

其中getBean({xxx});方法的参数中,也有些配置须要咱们注意的地方。异步

好比:async

1.对象的单例、实例化模式函数

scope : scope 能够是 singleton 或者是 prototype, 默认状况下是 singleton

2.抽象学习

abstract : 用于定义一个bean是抽象的, 即不会实例化, 默认状况下是 false

3.继承ui

parent : 用于定义bean之间的继承关系, 相似于对象之间的继承关系, 子类会继承父类 prototype 里面所没有的method, 值为parent bean id

4.初始化及销毁spa

init : 在构造函数被调用以后执行的init方法, init 方法能够是async异步的
destroy : 析构函数, 当容器优雅的关闭的时候, destroy 方法会被调用, 来作一些销毁工做
相关文章
相关标签/搜索