Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/02/2007, 18:00
Fridureiks
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 10 meses
Puntos: 6
Singleton y herencia

Buenas, tengo una dudilla. Tengo una clase abstracta, la cual quiero que tenga un metodo tipo getInstance para aplicar Singleton. El problema es que no encuentro la manera de hacer funcionar el singleton en las clases que heredan de esta primera... sin tener que sobreescribir el metodo. Por si no se entiende, pongo codigo que tengo hecho:

Código PHP:
<?php
interface Individuos
{
    static function 
getInstance();
    function 
initialize$data );
}

abstract class 
Personas implements Individuos
{
    protected 
$name;
    protected static 
$instance;
    
    protected function 
__construct()
    {
    }
    
    public static function 
getInstance() {
        if ( ! 
self::$instance )
        {
            
$class get_class();
            echo 
$class//sale Personas
            
self::$instance = new $class();
        }
        return 
self::$instance;            
    }
    
    public function 
initialize($data)
    {
        
$this->name $data["name"];
    }
}

class 
Hombre extends Personas
{
}

$data = array('name' => 't');
$tb Hombre::getInstance();
$tb->initialize$data );
?>
Lo intente con get_class(), pero me devuelve el nombre de la clase abstracta (como esta ahora) y claro, me tira error por querer instanciar una clase abstracta. Solo deseo que por ejemplo la clase Hombre tenga un metodo para recueprar una unica instancia del objeto, y que este metodo sea heredado, o sea que no lo quiero escribir en cada una de las clases que heredan de Personas.

Alguna solución o alternativa?


Muchas gracias
__________________
Federico.

Mi página: www.jourmoly.com.ar

Última edición por Fridureiks; 18/02/2007 a las 19:24