Singleton.ts 919 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. /**
  2. * 单例类父类
  3. */
  4. export class Singleton {
  5. private static instance;
  6. public static getInstance<T>(): T {
  7. if (this.instance == null) {
  8. var Class: any = this;
  9. this.instance = new Class() as T;
  10. }
  11. return this.instance;
  12. }
  13. public static ins() {
  14. if (this.instance == null) {
  15. var Class: any = this;
  16. this.instance = new Class();
  17. }
  18. return this.instance;
  19. }
  20. public static createInstance() {
  21. if (this.instance == null) {
  22. var Class: any = this;
  23. this.instance = new Class();
  24. this.instance.init();
  25. }
  26. }
  27. public static destroyInstance() {
  28. if (this.instance != null) {
  29. this.instance.unInit();
  30. this.instance = null;
  31. }
  32. }
  33. public init() { }; //资源初始化
  34. public unInit() { }; //资源释放
  35. }