Guida programmazione orientata agli oggetti » Torna alla lezione

Esempio di singleton [Python]

Poichè il Python non prevede la possibilità di definire dei costruttori privati, è necessario utilizzare qualche stratagemma per evitare che venga creata più di una istanza della classe che si vuole definire come Singleton. Un'idea è quella di scatenare un'eccezione se esiste già un oggetto di classe Singleton attivo. Come oggetto dell'eccezione viene utilizzata la stessa istanza attiva della classe.

class Singleton:
    __istanza = None
    def __init__( self ):
        if Singleton.__istanza:
            raise Singleton.__istanza
        Singleton.__istanza = self
    def helloWorld(self):
        print 'Hello World'

class UsaSingleton:
    s = Singleton()
    s.helloWorld()