это сценарий связи между классом водителя и классом автомобиля
водитель может водить машину
диаграмма классов
я хочу реализовать этот сценарий в диаграмме классов
Пример кода ниже
пожалуйста, не это не фактический код. Это фиктивный код
код для класса драйвера
Class driver {
private $car;
private $license
private $name
public __construct(Car $car,$license){
$this->car = $car;
$this->$license = $license;
}
//driver can accelerate car
public accelerating(){
$this->car->accelerate();
}
checkDriverlicenceIsavailable(){
$av = ($this->license)?true:false;
return $av;
}
canDriveVehicle(){
$cd = ($this->car->$vehicleType= 'luxuary car')?true:false
return $cd;
}
}
код для класса автомобилей
Class Car {
private $xlocation;
private $ylocation;
private $xspeed;
private $yspeed;
private $vehicleType;
public __construct($xlocation,$ylocation,$xspeed = 0,$yspeed = 0,$vehicleType){
$this->xlocation = $xlocation;
$this->ylocation = $ylocation;
$this->xspeed = $xspeed;
$this->yspeed = $yspeed;
$this->vehicleType = $vehicleType;
}
public drive(){
$this->xlocation + ($this->xspeed*(1));
$this->ylocation + ($this->yspeed*(1));
}
public park(){
$this->speed = 0;
}
public accelerate(){
$this->xspeed++;
$this->yspeed++;
}
}
показать, что водитель может разогнать машину,
в классе водителя есть accelerating()
метод, и он будет вызывать метод ускорения класса автомобиля.
в классе автомобиля accelerate()
метод работает только на xspeed
,yspeed
это правильный подход?
этот подход не нарушает инкапсуляцию?
если в классе водителя такой метод не нужен, чтобы показать, что водитель может ускорять автомобиль, то как реализовать драйвер в коде для ускорения автомобиля?
Задача ещё не решена.
Других решений пока нет …