Factory Pattern

Quellcode

    
    

factory.php

// Die Klasse ist sehr übersichtlich. Man kann eine Farbe setzen und diese auslesen. Der Standardwert ist weiß. Die Factory ist ähnlich komplex: class Car { private $color = null; public function __construct() { $this->color = "white"; } public function setColor($color) { $this->color = $color; } public function getColor() { return $this->color; } } // Hier gibt es eine Methode für rote Autos, eine für blaue und damit man den Code nicht dupliziert eine private Methode, die die eigentliche Erzeugung durchführt. class CarFactory { private function __construct() { } public static function getBlueCar() { return self::getCar("blue"); } public static function getRedCar() { return self::getCar("red"); } private static function getCar($color) { $car = new Car(); $car->setColor($color); return $car; } } $car1 = CarFactory::getBlueCar(); echo "Car 1 is ".$car1->getColor() ."<br>"; $car2 = CarFactory::getRedCar(); echo "Car 2 is ".$car2->getColor() ."<br>"; $car3 = new Car(); echo "Car 3 is ".$car3->getColor() ."<br>";

Ausgabe