Doofe Frage OOP

dg87

Erfahrenes Mitglied
Hi,

ich hatte mal kürzlich ins Forum geschrieben, wie ich am besten (am Pizza Beispiel) meine Klassen organisiere.
Yaslaw hat mir das einen Tipp gegeben, den ich erstmal umsetzen will und auch gut finde.
Bitte gebt mir keine Ratschläge ich solls anders machen - es gibt tausend wege und ich schlage jetzt diesen erstmal ein.
Hier der Code als Beispiel (Dank geht nochmal an Yaslaw)
Code:
class PizzaFactory{
    public static function insertPizzaIntoDB(Pizza $pizza){
        $sql = "INSERT INTO pizza (name, preis) VALUES ('{$pizza->name}', {$pizza->preis}";
        DB::execute($sql);
    }
    public static function getPizzasFromDB($where=NULL){
        $sql = 'SELECT * FROM pizza'.(!is_null($where) ? " WHERE {$where}" : "");        
        $result = DB::execute($sql);;
        $pizzas = array();
        while($row = mysql_fetch_assoc){
            $pizzas[] = new Pizza($row['name'], $row['preis']);
        }
        return $pizzas;
    }
}

class Pizza{
    public $name;
    public $preis;
    public function __construct($name = NULL, $preis = NULL){
        $this->name = $name;
        $this->preis = $preis
    }
    //TODO: weitere Pizza-Spezifische Methoden.
}

//Alle Pizzas auselsen
$allePizzas = PizzaFactory::getPizzasFromDB();
var_dump($allePizzas);
//Neue Pizza hinzufügen

Jetzt kommt nur die eine Doofe Frage, warum brauch ich dann überhaupt noch die Klasse Piza, weil in der Factory wird ja dann hinzugefügt, gelöscht etc, alle DB Sachen halt durchgeführt. DAnn ist doch die Klasse Pizza als solches überflüssig xD. Ich bring scho wieder nen Wurm rein...
 
Es macht deshalb sinn, damit wenn ich weiterarbeite nicht jedes mal von der DB was holen muss, sondern einfach mit dem Objekt Pizza weiterarbeite, right?
 
Richtig, in dein Pizzaobject könnte nun sowas wie Käserand, Größe oder ähnliches als Attribut oder/und Datenbankfeld kommen, was sich pro Pizza halt ändern kann. Den das sind die Eigenschaften der Pizza und nicht der Firma die Sie "backt". :)
 
Zurück