Hi,
meine Datenbank ist so aufgebaut, das man jederzeit einem Produkt weitere Eigenschaften zuordnen kann, ohne an der Struktur was zu ändern.
Ich würde das gern in eine Klasse übertragen. Wird eine neue Eigenschaft hinugefügt, will ich aber nicht jedesmal die Klasse erweitern:
Es gibt aber auch viele Eigenschaften, wo jeweils nur ein boolean zurückgegeben wird. Dann sollte die Bezeichnung nicht getProperty sondern hasProperty sein. Gibt es dafür eine Lösung, also dynamisch Attribute der Klasse hinzuzufügen und jeweils andere Mehodenbezeichnungen zu verwenden?
Mein erster Gedanke war, einfach analog zu getProperty eine weitere Methode hasProperty anzulegen und dann (z.B. bei der Ausgabe der Werte ) einfach die eine oder andere Methode zu verwenden?
Farbe --> getProperty('color');
Klimaanlage --> hasProperty('aircondition');
wobei man jeden Wert auch mit der jeweils anderen Funktion bekommen könnte.
Oder ist es generell besser, wirklich für jede Eigenschaft eine Methode zu haben? Beim Hinzufügen von neuen Eigenschaften muss mann dann die Klasse anpassen. Mein obiges Problem würde dann nicht mehr bestehen.
meine Datenbank ist so aufgebaut, das man jederzeit einem Produkt weitere Eigenschaften zuordnen kann, ohne an der Struktur was zu ändern.
Ich würde das gern in eine Klasse übertragen. Wird eine neue Eigenschaft hinugefügt, will ich aber nicht jedesmal die Klasse erweitern:
PHP-Code:
public function getProperty($name){
return $this->$name;
}
Mein erster Gedanke war, einfach analog zu getProperty eine weitere Methode hasProperty anzulegen und dann (z.B. bei der Ausgabe der Werte ) einfach die eine oder andere Methode zu verwenden?
Farbe --> getProperty('color');
Klimaanlage --> hasProperty('aircondition');
wobei man jeden Wert auch mit der jeweils anderen Funktion bekommen könnte.
Oder ist es generell besser, wirklich für jede Eigenschaft eine Methode zu haben? Beim Hinzufügen von neuen Eigenschaften muss mann dann die Klasse anpassen. Mein obiges Problem würde dann nicht mehr bestehen.
Kommentar