稍后初始化(子)类,并将其附加到实例化的父类

时间:2018-10-15 17:44:45

标签: php class oop

我正试图弄清楚我的设计,并且想知道是否有办法将子类“附加”到已经实例化的父类上。

示例:

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

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

现在,当我稍后在代码中需要送货地址时,我不希望订单再次(昂贵地)启动,而是希望使用现有实例。 任何提示将不胜感激。

1 个答案:

答案 0 :(得分:0)

我认为您可以通过构造函数将地址类注入到订单类中,并且在设计中几乎没有错误,从逻辑上讲,车间订单应包含交货地址,而不是有订单的地址。所以我做了一些更新:

class DeliveryAddress{..}

class WebShopOrder { 
  public $deliveryAddress;

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

$delivery_address = new DeliveryAddress;
$order = new WebShopOrder($delivery_address);