Hallo,
So ist es aber, abseits aller Pattern, die sich im Lauf der Zeit dazuentwickelten, gedacht gewesen, dass es Datensatz und Verwalter in einem ist. Sonst hätte man gleich bei der Trennung nach Daten und Funktionen bleiben können.
Naja, kann es ja sein, dennoch hast du doch recht schnell auch Daten unterschiedlichen Typs, zB. Systemvariablen (Gruppenzugehörigkeit, ID, Verlaufsdaten etc.) und vielleicht auch vom Nutzer konfigurierbare Daten. Für eine Datensammlung wäre dann ein Array eher sinnvoll, oder könnte es sein.
$_id = null;
$_system = array();
$_userdata = array();
Es ging mir nicht um die Klassenebene, ich hätte das class drumherum doch weglassen sollen, sondern um einen etwas reduzierteren Aufwand, dass man bei der Anwendung nicht nach getBar() und setBar() trennen muss sondern einfach nur Bar() für beides benutzen kann.
Naja, aber versteckst du dann nicht die Bezeichnung oder was die Funktion kann im Namen. Und sollte nicht immer jede Funktion nur eine Sache können? Ist vielleicht auch vom Bedarfsfall und Geschmack abhhängig.
new Product("Autor","Titel","Preis","Shortdesc","Ustklasse","basename","ISBN") aber zB. macht aus meiner Sicht nicht allzuviel Sinn oder nicht unbedingt.
Eher $Producthandler::getInstance()->addProduct(array("autor"=>"Hans","title="Titel1" etc.pp.));
Der kann dann dem Produkte gleich noch zusätzlich eine interne ID verpassen, ein Einstellungsdatum, vielleicht auch wer es eingepflegt hat etc.pp., also Systemdaten oder Metadaten hinzufügt. Würde das Produkt das selber machen, wäre es ein ActiveRecord, was ja auch eins von den vielen Fowler-Pattern ist und glaub ich auch im ZF vorkommt. Die schreiben ja immer dazu, welches Pattern sie umsetzen, wenn sie es tun (;-).
Gruß
jobo