Ich habe eine Basisklasse, Fruit, und eine Instanz einer Kindklasse, Apple. Wie soll ich die Apple-Instanz in einer Datenbank speichern? Würde eine insertFruit
Methode mit einer instanceof
Prüfung einen Apple als gutes Design erkennen oder nicht?Speichern einer Instanz, die von einer Basisklasse abgeleitet ist
1
A
Antwort
2
Ich glaube nicht, dass es ein guter Entwurf ist, eine Methode in der Oberklasse zu haben, die überprüft, ob das Objekt eine Instanz einer Unterklasse ist. Was, wenn Sie Banana später hinzufügen möchten? Fügen Sie einen weiteren Check in insertFruit() hinzu?
Ich denke, es wäre besser, mit Polymorphie gehen und überschreiben die insertFruit() -Methode in der Apple-Klasse.
Sie haben Recht. Was getan werden kann, ist eine Überschreibung, da Sie sagen, dass Felder gespeichert werden, die für eine Unterklasse spezifisch sind, und dann die Speichermethode für Fruit für Felder in der Basisklasse aufrufen. In der Datenbank würde dies als ein neuer Rekord für einen Apple widerspiegeln, dessen ID dann in einem Fruit-Eintrag verwendet wird. –