Потихоньку изучаю паттерны с языком, возможно я где-то допустил для себя не очевидную ошибку. Почему $load всегда null?
abstract class Logistic {
public $load;
public $status;
abstract function delivery();
}
abstract class Transport {
abstract function uploaded();
abstract function price();
}
class TruckDelivery extends Logistic {
public function delivery()
{
if($this->load === 100) {
$this->status = "Отправка груза наземным транспортом \n";
} elseif ($this->load < 100 && $this->load >= 90) {
$this->status = "Отправка груза наземным транспортом с добором груза по маршруту\n";
} else {
$this->status = "Отправка груза невозможна. Наземный транспорт не загружен \n";
}
return $this->status;
}
}
class AirplaneDelivery extends Logistic {
public function delivery()
{
if($this->load === 100) {
$this->status = "Отправка груза воздушым грузовым судном \n";
} else {
$this->status = "Отправка груза невозможна. Воздушное судно не зангруженно \n";
}
return $this->status;
}
}
class Airplane extends Transport {
public function uploaded()
{
return new AirplaneDelivery();
}
public function price()
{
return "Стоимость 200 руб.\n";
}
}
class Truck extends Transport {
public function uploaded()
{
return new TruckDelivery();
}
public function price()
{
return "Стоимость 100 руб. + 50 руб. на загрузку попути\n";
}
}
$shipping = new Truck();
$shipping->uploaded()->load = 100;
echo $shipping->uploaded()->delivery();
echo $shipping->price();