02. november 2004 - 13:26Der er
11 kommentarer og 1 løsning
PHP5: Nedarvning af Singleton funktionalitet
Jeg prøver at lave en grundlæggende Singleton klasse, der kan bruges som udgangspunkt til andre klasser. Men når jeg prøver at nedarve Singleton klassen, og oprette en instans af den nye klasse, så er det Singleton klassen, der bliver instantieret.
Jeg anvender en factory-method.
<?php class Singleton { private static $instance = false;
public static function getInstance() { if (self::$instance === false) { self::$instance = new self; } return self::$instance; }
public function hallo() { echo "Hallo\n"; } }
class MySingleton extends Singleton { public function hallo() { echo "Davs med dig\n"; } }
$c = MySingleton::getInstance(); $c->hallo(); ?>
Ovenstående burde (efter mit hovede) printe "Davs med dig". Men det printer "Hallo".
Hvis jeg kopierer funktionen getInstance() ned i den nedarvede klasse, så fungerer det. Men det er jo lige præcist det, som jeg vil undgå.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
problemet er at en singleton ikke har en normal constructor. Den statiske funktion getInstance vil altid virke på den klasse den er defineret i, så du er nødt til at lave en ny getInstance funktion hver gang du exrtender din singletonklasse.
gogoplex -> Ja den har jeg allerede set på - og den løser ikke mit problem. Men tak for forsøget. :-)
jakoba -> Værsgo
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.