ООП (выгодное использование)
на мой вопрос оhow to use OOP in a beneficial way В качестве примера я предполагаю КОРЗИНУ, к которой ее владелец (Том), имеющий определенный АДРЕС (Нью-Йорк), может добавить СТАТЬИ (Велосипед, Автомобиль). Наконец, БИЛЛ напечатан со всей этой информацией.
Моя проблема: Как справиться со сбором нужной информации (здесь: владелец, город, количество предметов) из нескольких объектов? Потому что я думаю, что глупо делать это вручную, как это сделано ниже (см. 4.), не так ли? (даже больше, поскольку объем информации в реальности увеличивается)
Так что же такое «чистый путь»? для создания счета / сбора информации, необходимой в этом примере?
<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>