From b0ac02f01efd2e2c21c28b6e5a093fd6f07f8b69 Mon Sep 17 00:00:00 2001 From: Dominik Liebler Date: Tue, 6 Nov 2018 20:18:30 +0100 Subject: [PATCH] removed ...Interface suffix and added method to interface --- Creational/StaticFactory/FormatNumber.php | 6 +- Creational/StaticFactory/FormatString.php | 6 +- Creational/StaticFactory/Formatter.php | 8 + .../StaticFactory/FormatterInterface.php | 7 - Creational/StaticFactory/README.rst | 6 +- Creational/StaticFactory/StaticFactory.php | 8 +- .../StaticFactory/uml/StaticFactory.uml | 72 ++--- Creational/StaticFactory/uml/uml.png | Bin 6632 -> 24083 bytes Creational/StaticFactory/uml/uml.svg | 283 +++++------------- 9 files changed, 136 insertions(+), 260 deletions(-) create mode 100644 Creational/StaticFactory/Formatter.php delete mode 100644 Creational/StaticFactory/FormatterInterface.php diff --git a/Creational/StaticFactory/FormatNumber.php b/Creational/StaticFactory/FormatNumber.php index 69fd9e1..7579a92 100644 --- a/Creational/StaticFactory/FormatNumber.php +++ b/Creational/StaticFactory/FormatNumber.php @@ -2,6 +2,10 @@ namespace DesignPatterns\Creational\StaticFactory; -class FormatNumber implements FormatterInterface +class FormatNumber implements Formatter { + public function format(string $input): string + { + return number_format($input); + } } diff --git a/Creational/StaticFactory/FormatString.php b/Creational/StaticFactory/FormatString.php index 14c2055..41e7221 100644 --- a/Creational/StaticFactory/FormatString.php +++ b/Creational/StaticFactory/FormatString.php @@ -2,6 +2,10 @@ namespace DesignPatterns\Creational\StaticFactory; -class FormatString implements FormatterInterface +class FormatString implements Formatter { + public function format(string $input): string + { + return $input; + } } diff --git a/Creational/StaticFactory/Formatter.php b/Creational/StaticFactory/Formatter.php new file mode 100644 index 0000000..f6abe51 --- /dev/null +++ b/Creational/StaticFactory/Formatter.php @@ -0,0 +1,8 @@ + - - PHP - \DesignPatterns\Creational\StaticFactory\FormatNumber - - \DesignPatterns\Creational\StaticFactory\FormatNumber - \DesignPatterns\Creational\StaticFactory\StaticFactory - \DesignPatterns\Creational\StaticFactory\FormatString - \DesignPatterns\Creational\StaticFactory\FormatterInterface - - - - - - - - - - - - - - - - - - - - Fields - Constants - Constructors - Methods - - private - - + + + PHP + \DesignPatterns\Creational\StaticFactory\FormatNumber + + \DesignPatterns\Creational\StaticFactory\FormatString + \DesignPatterns\Creational\StaticFactory\StaticFactory + \DesignPatterns\Creational\StaticFactory\Formatter + \DesignPatterns\Creational\StaticFactory\FormatNumber + + + + + + + + + + + + + + + + + + + + Fields + Constants + Constructors + Methods + + private + + diff --git a/Creational/StaticFactory/uml/uml.png b/Creational/StaticFactory/uml/uml.png index f1b66881166f2e4c033080d07e013064721ced41..7b833daaa7990dbb6a256bcd10f16c749a17bdf8 100644 GIT binary patch literal 24083 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 z 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 NqMWL1sq|~#{{fXYv)%vz diff --git a/Creational/StaticFactory/uml/uml.svg b/Creational/StaticFactory/uml/uml.svg index e57a79b..2626370 100644 --- a/Creational/StaticFactory/uml/uml.svg +++ b/Creational/StaticFactory/uml/uml.svg @@ -1,207 +1,76 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FormatNumber - - - FormatNumber - - - - - - - - - - - - - - - - - - factory(type) - - - - - - - - - - - - - StaticFactory - - - StaticFactory - - - - - - - - - - - - - - - - FormatString - - - FormatString - - - - - - - - - - - - - - - - FormatterInterface - - - FormatterInterface - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +