/** * 单例模式装饰器 * * @export * @param {*} [params] * @returns {*} */ export function SingletonMode(params?: any): any { /** * 装饰器处理 */ return function(target: any) { return class Singleton extends target { /** * 唯一实例 * * @private * @static * @type {Singleton} */ private static readonly instance: Singleton = new Singleton(); /** * Creates an instance of Singleton. */ constructor(...args: any[]) { if (Singleton.instance) { return Singleton.instance; } super(...args); } /** * 获取唯一实例 * * @static * @returns {Singleton} */ static getInstance(): Singleton { return this.instance; } }; }; }