import { BaseProvider } from './base' import { BaseModel } from '../model' import { OperaterFactory, IOperater } from './operater' /** * Provider 工厂类 * * @export * @class ProviderFactory */ export class ProviderFactory { private static _porviders: { [x: number]: any; [x: string]: any } = {}; /** * 获取Provider * * @static * @template P Provider类 * @template Op Operater类 * @template M Model类 * @param {new () => P} Provider * @returns {P} * @memberof ProviderFactory */ public static get

, Op extends IOperater, M extends BaseModel>(Provider: new () => P): P { if (!this._porviders[Provider.name]) { this._porviders[Provider.name] = new Provider(); } return (this._porviders[Provider.name]) as P; } } export { BaseProvider, OperaterFactory, IOperater }