Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/06/2009, 02:08
xayide
 
Fecha de Ingreso: febrero-2006
Mensajes: 174
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: Patrón singleton para acceso a base de datos

Hola! Gracias por la respuesta. Al final lo he dejado así:

Código PHP:
class GestorBD(object):
  
    
instance=None

    def __new__
(cls, *args, **kargs):
        if 
cls.instance is None:
            
cls.instance=object.__new__(cls, *args, **kargs)          
        return 
cls.instance

    def __init__
(self):
       
self.conexion=psycopg.connect("host='xxx.xxx.xxx.xxx' port= 'xxx' dbname='xx' user= 'xx' password= 'xx'")
    
    
def execute(selfconsulta):
        
self.cursor=self.conexion.cursor()
        
self.cursor.execute(consulta)        
        
registros=self.cursor.fetchall()
        return 
registros
..... 
La duda que tengo es la siguiente: cada vez que se intenta crear un objeto GestorBD se ejecuta el método __new__ y si ve que ya hay una instancia es esa la que devuelve. Hasta ahí está claro. Pero después se llama al __init__ y ahí se hace la conexión. ¿Se está creando una conexión por cada llamada al único objeto creado? ¿Os el la misma conexión? Lo que yo necesito es que haya una conexión por cada objeto único singleton.

Un saludo