初始化
This commit is contained in:
17
src/core/utils/Singleton.ts
Normal file
17
src/core/utils/Singleton.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
/** 单例模式
|
||||
* 确保一个类只有一个实例,并提供一个全局访问点
|
||||
* @param constructor
|
||||
* @constructor
|
||||
*/
|
||||
export function Singleton<T extends { new (...args: any[]): any }>(constructor: T): T {
|
||||
let instance: any;
|
||||
|
||||
return new Proxy(constructor, {
|
||||
construct(target, argsList, newTarget) {
|
||||
if (!instance) {
|
||||
instance = Reflect.construct(target, argsList, newTarget);
|
||||
}
|
||||
return instance;
|
||||
},
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user