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

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

如playerHandler.js中:

复制代码
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)”或实例化操作

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

比如:

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

scope : scope 可以是 singleton 或者是 prototype, 默认情况下是 singleton

2.抽象

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

3.继承

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

4.初始化及销毁

init : 在构造函数被调用之后执行的init方法, init 方法可以是async异步的
destroy : 析构函数, 当容器优雅的关闭的时候, destroy 方法会被调用, 来做一些销毁工作
posted @   枫之戊  阅读(707)  评论(0编辑  收藏  举报
编辑推荐:
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
点击右上角即可分享
微信分享提示