/** * 不能序列化对象的引用映射管理 * 前提: 程序所有操作的具体的值是可序列化的 * 原理: 取不可序列化对象时先存map, 存引用的key, 下次操作时在原对象的环境中取可序列化的成员 * Notice: 注意一个对象多个id的情况 * 默认绑定对象映射到0 * @class ObjectMap */ export default class ReferenceManager { /** * 对象到ID的映射, 由于一个Object可能(returnID由请求方生成)有多个id, 所以需要用数组表示 * * @private * @memberof ObjectMap */ private objectIDMap; private IDObjectMap; private root; get size(): number; setRoot(root: any): void; getObjectByID(id: number): any; getIDByObject(obj: any): any; set(id: number, obj: any): void; deleteByID(id: number): void; deleteByObject(obj: any): void; clearOtherwise(...otherwise: any): void; }