以前大致瞭解了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 方法會被調用, 來作一些銷燬工做