import { IDisposable } from 'ts-toolset'; /** 实例工厂接口 */ export interface IInstanceFactory extends IDisposable { /** 获取实例 */ getInstance(target: { new (...params: any[]): T; }, ...params: any[]): T; /** 获取实例,返回实例和标识(标识实例是否是新建的) */ getInstanceAndSign(target: { new (...params: any[]): T; }, ...params: any[]): [T, boolean]; /** 回收所有实例 */ recycle(): void; /** 回收指定实例 */ recycle(instance: T): void; /** 回收指定实例集合 */ recycle(instances: T[]): void; } /** 实例工厂 */ export declare class InstanceFactory implements IInstanceFactory { /** 可用复用实例 */ private _spareInstances; /** 已被使用的实例 */ private _workingInstances; private _recycleInstance; private _getInstance; getInstance(target: { new (...params: any[]): T; }, ...params: any[]): T; getInstanceAndSign(target: { new (...params: any[]): T; }, ...params: any[]): [T, boolean]; recycle(): void; recycle(instances: T): void; recycle(instances: T[]): void; /** 释放实例 */ dispose(): void; }