Класс init (sub) позже и присоедините его к созданному родителю - PullRequest
0 голосов
/ 15 октября 2018

Я пытаюсь разобраться в своем дизайне и задаюсь вопросом, есть ли способ «прикрепить» дочерний класс к уже созданному родительскому классу.

Пример:

CLASS webshopOrder { ... }
CLASS deliveryAddress EXTENDS webshopOrder {
    public function __construct($parentOrder) {
        // pseudo: parent = $parentOrder;
    }
}

$order = new webshopOrder;
$deliveryAddress = new deliveryAddress($order);

Теперь, когда мне понадобится адрес доставки позже в моем коде, я не хочу, чтобы заказ снова инициировался (дорого), и хотел бы использовать существующий экземпляр.Любая подсказка будет оценена.

1 Ответ

0 голосов
/ 15 октября 2018

Я думаю, что вы можете ввести класс адресов в своем классе заказов с помощью конструктора, и в вашем дизайне есть небольшая ошибка, логически, если заказ магазина должен содержать адрес доставки, а не адрес заказа.поэтому я делаю некоторые обновления:

class DeliveryAddress{..}

class WebShopOrder { 
  public $deliveryAddress;

    public function __construct(DeliveryAddress $deliveryAddress) {
    $this->deliveryAddress = $deliveryAddress;
  }
}

$delivery_address = new DeliveryAddress;
$order = new WebShopOrder($delivery_address);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...