{ return $result + $value; } } class Subtractor implements CalculatorInterface { public function run($value, $result) { return $result - $value; } } class Divider implements CalculatorInterface { public function run($value, $result) { return $result / $value; } } class Multiplier implements CalculatorInterface { public function run($value, $result) { return $result * $value; } } /** * Calculation */ $c = new Calculator(); echo $c->setFunction(new Adder())->run(100, 97)->setFunction(new Subtractor())->run(117)->setFunction(new Adder())->run(20)->setFunction(new Divider())->run(5)->setFunction(new Multiplier())->run(17)->getResult();