Nicht alles ist ein Getter, was ein Ergebnis liefert.
So isses. Wenn nämlich das Request-Objekt feststellt, dass Parameter im Request sind
if( $this->param() ){
# Benutzereingabe, Controller wird aufgerufen
# control() ist eine Interface Methode
$this->control();
}
else{
# Darstellung der Antwortseite
# wenn keine Parameter im Request sind
$this->browse();
}
ergibt sich eine Verzweigung und somit ist control() ein Setter der das Ergebnis einer Eingabe in eine ganz bestimmte Datenstruktur (abstrakter Datentype) setzt. browse() kann übrigens auch ein setter sein, der könnte bspw. eine DB-Afrage in den STASH (Datenversteck) setzen. $this->STASH ist ein abstrakter Datentyp der so beschaffen ist, daß er unmittelbar an die render()-Methode der TemplatingEngine übergeben werden kann. Und letztere rendert dann z.B. eine mehrzeilige wie mehrspaltige Tabelle oder eine Fehlermeldung ins Ausgabe-Template.
MfG
PS:
Die Beispiele von oben werden auf eine Vielzahl interner Variablen zugreifen und mehr oder weniger kompelxe Berechnungen anstellen und fallen damit nicht mehr unter die übliche Definition von Gettern.
Es gibt sogar Setter die verändern sämtliche Eigenschaften einer Instanz, weil die Veränderung einer einzigen Eigenschaft keinen Sinn ergibt. Z.B. wäre es in einem Datum-Objekt unsinnig, nur den Julianischen Tag zu ändern OHNE sämtliche anderen Eigenschaften (Tag, Monat, Jahr) neu zu berechnen, denn das muß ja am Ende zusammenpassen.
Die Wikipedia Definition von Getter/Setter finde ich daher eher armselig, weil ein praktischer Nutzen nun doch ein bischen mehr voraussetzt als das Was Wikipedia schreibt.