Naja hast schon recht, ich meinte Objekte
Aber bei meinen "Problem" bin ich immernoch nicht weiter
Ich hol am besten mal richtig aus.
Es geht um eine Vereins-Klasse, die Daten zum Verein aus einer Datenbank lädt.
Jetzt haben sich aber ein paar Leute zusammengesetzt und beschlossen das es auch Spielgemeinschaften gibt.
Also hab ich mir gedacht, mach ich doch dafür eine Spielgemeinschaft-Klasse , die von der Vereinsklasse abgeleitet ist.
Code:
<?php
class Verein
{
function Verein ($vereinsnummer)
{
}
}
?>
Code:
<?php
class Spielgemeinschaft extends Verein
{
function Spielgemeinschaft ($vereinsnummer)
{
}
}
?>
Ob das Objekt nun ein einfacher Verein ist oder eine Spielgemeinschaft hängt von der Vereinsnummer ab.
Da ich nicht immer, wenn ich ein Vereins-Objekt erzeuge, explizit
prüfen will ob das nun eine Spielgemeinschaft ist, wollte ich das irgendwie automatisch machen.
Deshalb wollte ich halt einfach ein Vereins-Objekt erstellen, das bei Bedarf zu einen Spielgemeinschaft-Objekt mutiert.
Wenn ich immer die Spielberichtsklasse nehme funktioniert das auch nicht, weil Methoden der Vereinsklasse überschrieben werden!
Deshalb sehe ich jetzt 2 Möglichkeiten:
- Ich erweitere die Vereinsklasse um eine statische Methode, die mir automatisch das richtige Objekt zurückliefert.
Code:
function getClub()
{
...
return $club;
}
find ich nicht so toll in der Handhabung, aber sicher am einfachsten
- Ich prüfen bei allen Methoden, die die Spielgemeischaft-Klasse überschreiben würde, ob es sich um eine Spielgemeinschaft handelt und führe dann den entsprechenden Code aus.
Code:
function criticalMethod()
{
if (isSpielgemeinschaft()) {
[Spielgemeinschaft-Code]
} else {
[Verein_Code]
}
}
etwas unübersichtlicher Code
Hat jemand andere Vorschläge, oder eine Meinung welche Variante besser ist
Danke schonmal!