This is an error 404
There are `0` results
preferences:
139.44 ms | 1399 KiB | 7 Q<?php
interface GoAlgorithm
{
public function go();
}
class GoByDrivingAlgorithm implements GoAlgorithm
{
public function go()
{
echo "Now I'm driving." .PHP_EOL;
}
}
class GoByFlying implements GoAlgorithm
{
public function go()
{
echo "Now I'm flying." . PHP_EOL;
}
}
class GoByFlyingFast implements GoAlgorithm
{
public function go()
{
echo "Now I'm flying fast" . PHP_EOL;
}
}
class Vehicle
{
private $goAlgorithm;
public function __construct(GoAlgorithm $goType) {
parent::__construct();
$this->goAlgorithm = $goType;
}
public function setModeOfTransportation(GoAlgorithm $goType)
{
$this->goAlgorithm = $goType;
}
public function drive()
{
return $this->goAlgorithm->go();
}
}
// setter injection
$streetRacer = new Vehicle();
$streetRacer->setModeOfTransportation(new GoByDrivingAlgorithm());
$formulaone = new Vehicle();
$formulaone->setModeOfTransportation(new GoByDrivingAlgorithm());
$helicopter = new Vehicle();
$helicopter->setModeOfTransportation(new GoByFlying());
$jets = new Vehicle();
$jets->setModeOfTransportation(new GoByFlyingFast());
$streetRacer->drive();
$formulaone->drive();
$helicopter->drive();
$jets->drive();
// constructor injection
$streetRacer = new Vehicle(new GoByDrivingAlgorithm());
$formulaone = new Vehicle(new GoByDrivingAlgorithm());
$helicopter = new Vehicle(new GoByFlying());
$jets = new Vehicle(new GoByFlyingFast());
$streetRacer->drive();
$formulaone->drive();
$helicopter->drive();
$jets->drive();