以前大致了解了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 方法会被调用, 来作一些销毁工做