Return to Snippet

Revision: 58724
at July 30, 2012 21:52 by timsommer


Initial Code
var SingletonTester = (function () {
  // options: an object containing configuration options for the singleton
  // e.g var options = { name: 'test', pointX: 5};
  function Singleton(options) {
    // set options to the options supplied or an empty object if none provided.
    options = options || {};
    //set the name parameter
    this.name = 'SingletonTester';
    //set the value of pointX
    this.pointX = args.pointX || 6;
    //set the value of pointY
    this.pointY = args.pointY || 10; }

  // this is our instance holder
  var instance;

  // this is an emulation of static variables and methods
  var _static = {
    name: 'SingletonTester',
    // This is a method for getting an instance
    // It returns a singleton instance of a singleton object
    getInstance: function (options) {
      if (instance === undefined) {
        instance = new Singleton(options);
      }
      return instance;
    }
  };
  return _static;
})();

var singletonTest = SingletonTester.getInstance({
  pointX: 5
});

console.log(singletonTest.pointX); // outputs 5

Initial URL


Initial Description
In conventional software engineering, the singleton pattern can be implemented by
creating a class with a method that creates a new instance of the class if one doesn't In conventional software engineering, the singleton pattern can be implemented by creating a class with a method that creates a new instance of the class if one doesn't

Initial Title
Javascript Static Singleton Pattern

Initial Tags
javascript

Initial Language
JavaScript