Unterklassen

Fox90

Grünschnabel
Hi Leute,
bin noch ein Newbie in php und hab mal direkt eine Frage und zwar handelt es sich um Unterklassen, in einem anderen Thread hab ich gelesen, dass das nicht so toll ist, aber ich finde das eigentlich ganz gut kurzes Beispiel dazu:

PHP:
class Address {

    public $street;
    public $houseNumber;
    public $postcode;
    public $city;

    public function __construct($street = '', $houseNumber = '', $postcode = '', $city = '') {
        $this->street = $street;
        $this->houseNumber = $houseNumber;
        $this->postcode = $postcode;
        $this->city = $city;		
    }

    //Setter/Getter usw...

}

class Person {

    public $firstname;
    public $lastname;
    public $address = null;
	
    public function __construct($firstname = '', $lastname = '') {
        $this->firstname = $firstname;
        $this->lastname = $lastname;
        $this->address = new Address();
    }

   //Setter/Getter usw...

}

So und nun könnte ich über die Person direkt auch auf die Adressdaten zugreifen bzw. diese z.B. setzen:

PHP:
$person = new Person();
$person->address->setStreet("Blabla Str. 1");

Was haltet Ihr davon, ist das eine schlechte Herangehensweise?
 
Eher suboptimal. Die Felder sollten privat sein. Wenn du alle Felder privat machst, ist die Lösung eigentlich best-practice. Um an die Adresse zu kommen, müsstest du dann halt einen Getter für das Feld $addresse bereitstellen und dann mittels

PHP:
$person->getAddress()->setStreet('Musterstraße 4');

zugreifen.

Richtig entkoppelt wird es, wenn du mit Interfaces arbeitest. Aber das ist wohl für diesen Anwendungsfall etwas übetrieben ;-)
 
Ok, war nen Fehler meinerseits, natürlich sollten die privat sein. Ah ok und für die Adresse dann also nen Getter. Super danke :).
 
Zurück