sashomaga

Singleton

Jun 16th, 2013
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var Singleton = (function () {
  2.     var instance;
  3.  
  4.     function init() {
  5.         function privateFunction() {
  6.             console.log("private function");
  7.         }
  8.  
  9.         var privateRandomNumber = Math.random();
  10.  
  11.         return {
  12.             publicFunction: function () {
  13.                 console.log("public function");
  14.             },
  15.             publicProperty: "public property",
  16.             getRandomNumber: privateRandomNumber
  17.         }
  18.     }
  19.  
  20.     return {
  21.         getInstance: function () {
  22.             if (!instance) {
  23.                 instance = init();
  24.             }
  25.  
  26.             return instance;
  27.         }
  28.     }
  29. }());
  30.  
  31. var sing1 = Singleton.getInstance();
  32. var sing2 = Singleton.getInstance();
  33. console.log(sing1.getRandomNumber === sing2.getRandomNumber);
  34.  
  35. var SingletonTester = (function () {
  36.  
  37.     var instance;
  38.  
  39.     function Singleton(options) {
  40.         options = options || {};
  41.         this.name = "tester";
  42.         this.pointX = options.pointX || 5; //default value
  43.         this.pointY = options.pointY || 10;
  44.     }
  45.  
  46.     var _static = {
  47.         name: "tester",
  48.         getInstance: function (options) {
  49.             if (instance === undefined) {
  50.                 instance = new Singleton(options);
  51.             }
  52.  
  53.             return instance;
  54.         }
  55.     }
  56.  
  57.     return _static;
  58. }());
  59.  
  60. var sing = SingletonTester.getInstance({ pointX: 10 });
  61. console.log(sing.pointX);
Advertisement
Add Comment
Please, Sign In to add comment