Aggregation basically means the object created from the Vehicle class may include references to one or more objects created from the Saver class. At its most basic, it might be something like:
abstract class Vehicle
{
private $saver;
public setSaver(Saver $obj)
{
$this->saver = $obj;
}
public function save()
{
if(!empty($this->saver))
{
$this->saver->someSaverMethod();
}
else
{
// throw exception or return false, etc....
}
}
}
// sample usage:
$example = new LandVehicle();
$testSaver = new XmlSaver();
$example->setSaver($testSaver);
$example->save();