Singleton Design Pattern

Singleton design pattern is well known design pattern which uses a single object to access its methods at all time. Assume that you have a configuration file to read settings from. You are expecting to access various settings from different source files. With singleton you’ll hold a single object in memory and use this object to access its methods.

Sample python code demonstrating singleton is given below:

class Mysingleton():
	#class variable holds singleton object's reference
    s = None
	
	#constructor
    def __init__(self):
        print "this will print only once!!!"
        self._name = None
		#set _name with setter
        self.name = "yuppii"

	#getter
    @property
    def name(self):
        return self._name

	#setter
    @name.setter
    def name(self,n):
        self._name = n

	#static method to get instance
    @staticmethod
    def getInstance():
		#if no object is created before, create new one
        if Mysingleton.s == None:
            Mysingleton.s = Mysingleton()

        return Mysingleton.s


print Mysingleton.getInstance().name
print Mysingleton.getInstance().name
print Mysingleton.getInstance().name
print Mysingleton.getInstance().name
print Mysingleton.getInstance().name
print Mysingleton.getInstance().name

You  should see an output like:

this will print only once!!!
yuppii
yuppii
yuppii
yuppii
yuppii
yuppii