SingletonFactory.ts 426 B

1234567891011121314151617
  1. /**
  2. * 单例工厂
  3. */
  4. export class SingletonFactory {
  5. private static instances: Map<{ new() }, Object> = new Map<{ new() }, Object>();
  6. public static getInstance<T>(c: { new(): T }): T {
  7. if (!SingletonFactory.instances.has(c)) {
  8. let obj = new c();
  9. SingletonFactory.instances.set(c, obj);
  10. return obj;
  11. }
  12. return <T>SingletonFactory.instances.get(c);
  13. }
  14. }