OOP (vorteilhafte Nutzung)
für meine frage amwie man OOP auf vorteilhafte Weise einsetzt Ich nehme als Beispiel einen KORB an, zu dem sein Besitzer (Tom) mit einer bestimmten ADRESSE (NY) ARTIKEL (Fahrrad, Auto) hinzufügen kann. Schließlich wird eine Rechnung gedruckt, die alle diese Informationen enthält.
Mein Problem ist: Wie sammle ich die gewünschten Informationen (hier: Besitzer, Stadt, Anzahl der Gegenstände) von mehreren Objekten? Weil ich es für dumm halte, dies manuell zu tun (siehe 4.), nicht wahr? (noch mehr, da die Informationsmenge in der Realität zunimmt)
Was ist der "saubere Weg", um die Rechnung zu erstellen / die in diesem Beispiel benötigten Informationen zu sammeln?
<code><?php $a = new basket('Tom','NY'); $a->add_item("Bike",1.99); $a->add_item("Car",2.99); $b = new bill( $a ); $b->do_print(); </code>
1.
<code>class basket { private $owner = ""; private $addr = ""; private $articles = array(); function basket( $name, $city ) { // Constructor $this->owner = $name; $this->addr = new addresse( $city ); } function add_item( $name, $price ) { $this->articles[] = new article( $name, $price ); } function item_count() { return count($this->articles); } function get_owner() { return $this->owner; } function get_addr() { return $this->addr; } } </code>
2.
<code>class addresse { private $city; function addresse( $city ) { // Constructor $this->city = $city; } function get_city() { return $this->city; } } </code>
3.
<code>class article { private $name = ""; private $price = ""; function article( $n, $p ) { // Constructor $this->name = $n; $this->price = $p; } } </code>
4.
<code>class bill { private $recipient = ""; private $city = ""; private $amount = ""; function bill( $basket_object ) { $this->recipient = $basket_object->get_owner(); $this->city = $basket_object->get_addr()->get_city(); $this->amount = $basket_object->item_count(); } function do_print () { echo "Bill for " . $this->recipient . " living in " . $this->city . " for a total of " . $this->amount . " Items."; } } </code>