28 lines
665 B
TypeScript
28 lines
665 B
TypeScript
/**
|
|
* 單例基類
|
|
* @example
|
|
* export default class Test extends BaseSigleton<Test>() { ...... }
|
|
* Test.Instance.Init();
|
|
*/
|
|
// tslint:disable-next-line:typedef
|
|
export default function BaseSingletonV2<T>() {
|
|
class BaseSingleton {
|
|
protected constructor() { }
|
|
public static _instance: BaseSingleton = null;
|
|
public static get Instance(): T {
|
|
if ((<any>this)._instance == null) {
|
|
(<any>this)._instance = new (<any>this)();
|
|
}
|
|
return (<any>this)._instance;
|
|
}
|
|
|
|
/** 初始化 */
|
|
public Init(): void { /** */ }
|
|
|
|
/** 銷毀 */
|
|
public Disp(): void {
|
|
(<any>this)._instance = null;
|
|
}
|
|
}
|
|
return BaseSingleton;
|
|
} |