Merge pull request #484 from atakde/main

Creational :: added missing return types & minor refactor
This commit is contained in:
Dominik Liebler
2022-07-19 20:53:47 +02:00
committed by GitHub
7 changed files with 24 additions and 29 deletions

View File

@@ -6,8 +6,12 @@ class WinJsonWriter implements JsonWriter
{
public function write(array $data, bool $formatted): string
{
$options = 0;
if ($formatted) {
$options = JSON_PRETTY_PRINT;
}
return json_encode($data, JSON_PRETTY_PRINT);
return json_encode($data, $options);
}
}

View File

@@ -8,13 +8,13 @@ use DesignPatterns\Creational\Builder\Parts\Vehicle;
interface Builder
{
public function createVehicle();
public function createVehicle(): void;
public function addWheel();
public function addWheel(): void;
public function addEngine();
public function addEngine(): void;
public function addDoors();
public function addDoors(): void;
public function getVehicle(): Vehicle;
}

View File

@@ -14,19 +14,19 @@ class CarBuilder implements Builder
{
private Car $car;
public function addDoors()
public function addDoors(): void
{
$this->car->setPart('rightDoor', new Door());
$this->car->setPart('leftDoor', new Door());
$this->car->setPart('trunkLid', new Door());
}
public function addEngine()
public function addEngine(): void
{
$this->car->setPart('engine', new Engine());
}
public function addWheel()
public function addWheel(): void
{
$this->car->setPart('wheelLF', new Wheel());
$this->car->setPart('wheelRF', new Wheel());
@@ -34,7 +34,7 @@ class CarBuilder implements Builder
$this->car->setPart('wheelRR', new Wheel());
}
public function createVehicle()
public function createVehicle(): void
{
$this->car = new Car();
}

View File

@@ -14,18 +14,18 @@ class TruckBuilder implements Builder
{
private Truck $truck;
public function addDoors()
public function addDoors(): void
{
$this->truck->setPart('rightDoor', new Door());
$this->truck->setPart('leftDoor', new Door());
}
public function addEngine()
public function addEngine(): void
{
$this->truck->setPart('truckEngine', new Engine());
}
public function addWheel()
public function addWheel(): void
{
$this->truck->setPart('wheel1', new Wheel());
$this->truck->setPart('wheel2', new Wheel());
@@ -35,7 +35,7 @@ class TruckBuilder implements Builder
$this->truck->setPart('wheel6', new Wheel());
}
public function createVehicle()
public function createVehicle(): void
{
$this->truck = new Truck();
}

View File

@@ -4,14 +4,8 @@ declare(strict_types=1);
namespace DesignPatterns\Creational\Pool;
use DateTime;
class StringReverseWorker
{
public function __construct()
{
}
public function run(string $text): string
{
return strrev($text);

View File

@@ -20,7 +20,7 @@ class WorkerPool implements Countable
public function get(): StringReverseWorker
{
if (count($this->freeWorkers) == 0) {
if (count($this->freeWorkers) === 0) {
$worker = new StringReverseWorker();
} else {
$worker = array_pop($this->freeWorkers);
@@ -31,10 +31,9 @@ class WorkerPool implements Countable
return $worker;
}
public function dispose(StringReverseWorker $worker)
public function dispose(StringReverseWorker $worker): void
{
$key = spl_object_hash($worker);
if (isset($this->occupiedWorkers[$key])) {
unset($this->occupiedWorkers[$key]);
$this->freeWorkers[$key] = $worker;

View File

@@ -14,12 +14,10 @@ final class StaticFactory
{
public static function factory(string $type): Formatter
{
if ($type == 'number') {
return new FormatNumber();
} elseif ($type == 'string') {
return new FormatString();
}
throw new InvalidArgumentException('Unknown format given');
return match ($type) {
'number' => new FormatNumber(),
'string' => new FormatString(),
default => throw new InvalidArgumentException('Unknown format given'),
};
}
}