我正试图弄清楚我的设计,并且想知道是否有办法将子类“附加”到已经实例化的父类上。
示例:
CLASS webshopOrder { ... }
CLASS deliveryAddress EXTENDS webshopOrder {
public function __construct($parentOrder) {
// pseudo: parent = $parentOrder;
}
}
$order = new webshopOrder;
$deliveryAddress = new deliveryAddress($order);
现在,当我稍后在代码中需要送货地址时,我不希望订单再次(昂贵地)启动,而是希望使用现有实例。 任何提示将不胜感激。
答案 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);