refactored Factory Method pattern

This commit is contained in:
Dominik Liebler
2018-06-15 18:18:26 +02:00
parent f6d845e59e
commit bca6af02c0
27 changed files with 201 additions and 1198 deletions

View File

@@ -1,51 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<Diagram>
<ID>PHP</ID>
<OriginalElement>\DesignPatterns\Creational\FactoryMethod\GermanFactory</OriginalElement>
<OriginalElement>\DesignPatterns\Creational\FactoryMethod\StdoutLoggerFactory</OriginalElement>
<nodes>
<node x="87.0" y="242.0">\DesignPatterns\Creational\FactoryMethod\FactoryMethod</node>
<node x="164.0" y="112.0">\DesignPatterns\Creational\FactoryMethod\Bicycle</node>
<node x="308.0" y="112.0">\DesignPatterns\Creational\FactoryMethod\CarFerrari</node>
<node x="194.0" y="365.0">\DesignPatterns\Creational\FactoryMethod\ItalianFactory</node>
<node x="0.0" y="101.0">\DesignPatterns\Creational\FactoryMethod\CarMercedes</node>
<node x="0.0" y="365.0">\DesignPatterns\Creational\FactoryMethod\GermanFactory</node>
<node x="157.0" y="0.0">\DesignPatterns\Creational\FactoryMethod\VehicleInterface</node>
<node x="119.25" y="0.0">\DesignPatterns\Creational\FactoryMethod\LoggerFactory</node>
<node x="220.0" y="124.0">\DesignPatterns\Creational\FactoryMethod\StdoutLoggerFactory</node>
<node x="183.0" y="-160.0">\DesignPatterns\Creational\FactoryMethod\FileLogger</node>
<node x="0.0" y="101.0">\DesignPatterns\Creational\FactoryMethod\FileLoggerFactory</node>
<node x="8.0" y="-137.0">\DesignPatterns\Creational\FactoryMethod\StdoutLogger</node>
<node x="106.75" y="-261.0">\DesignPatterns\Creational\FactoryMethod\Logger</node>
</nodes>
<notes />
<edges>
<edge source="\DesignPatterns\Creational\FactoryMethod\GermanFactory" target="\DesignPatterns\Creational\FactoryMethod\FactoryMethod">
<edge source="\DesignPatterns\Creational\FactoryMethod\StdoutLogger" target="\DesignPatterns\Creational\FactoryMethod\Logger">
<point x="0.0" y="-25.5" />
<point x="87.0" y="340.0" />
<point x="135.5" y="340.0" />
<point x="-48.5" y="36.5" />
<point x="85.5" y="-185.0" />
<point x="145.5" y="-185.0" />
<point x="-38.75" y="25.5" />
</edge>
<edge source="\DesignPatterns\Creational\FactoryMethod\CarMercedes" target="\DesignPatterns\Creational\FactoryMethod\VehicleInterface">
<point x="0.0" y="-48.0" />
<point x="72.0" y="76.0" />
<point x="180.0" y="76.0" />
<point x="-46.0" y="25.5" />
<edge source="\DesignPatterns\Creational\FactoryMethod\FileLogger" target="\DesignPatterns\Creational\FactoryMethod\Logger">
<point x="0.0" y="-48.5" />
<point x="283.0" y="-185.0" />
<point x="223.0" y="-185.0" />
<point x="38.75" y="25.5" />
</edge>
<edge source="\DesignPatterns\Creational\FactoryMethod\Bicycle" target="\DesignPatterns\Creational\FactoryMethod\VehicleInterface">
<point x="0.0" y="-37.0" />
<point x="0.0" y="25.5" />
</edge>
<edge source="\DesignPatterns\Creational\FactoryMethod\ItalianFactory" target="\DesignPatterns\Creational\FactoryMethod\FactoryMethod">
<edge source="\DesignPatterns\Creational\FactoryMethod\StdoutLoggerFactory" target="\DesignPatterns\Creational\FactoryMethod\LoggerFactory">
<point x="0.0" y="-25.5" />
<point x="281.0" y="340.0" />
<point x="232.5" y="340.0" />
<point x="48.5" y="36.5" />
<point x="301.5" y="76.0" />
<point x="241.5" y="76.0" />
<point x="40.75" y="25.5" />
</edge>
<edge source="\DesignPatterns\Creational\FactoryMethod\CarFerrari" target="\DesignPatterns\Creational\FactoryMethod\VehicleInterface">
<point x="0.0" y="-37.0" />
<point x="370.0" y="76.0" />
<point x="272.0" y="76.0" />
<point x="46.0" y="25.5" />
<edge source="\DesignPatterns\Creational\FactoryMethod\FileLoggerFactory" target="\DesignPatterns\Creational\FactoryMethod\LoggerFactory">
<point x="0.0" y="-48.5" />
<point x="100.0" y="76.0" />
<point x="160.0" y="76.0" />
<point x="-40.75" y="25.5" />
</edge>
</edges>
<settings layout="Hierarchic Group" zoom="1.0" x="216.0" y="208.0" />
<SelectedNodes />
<settings layout="Hierarchic Group" zoom="1.0" x="375.0" y="60.5" />
<SelectedNodes>
<node>\DesignPatterns\Creational\FactoryMethod\FileLogger</node>
<node>\DesignPatterns\Creational\FactoryMethod\StdoutLogger</node>
<node>\DesignPatterns\Creational\FactoryMethod\Logger</node>
</SelectedNodes>
<Categories>
<Category>Fields</Category>
<Category>Constants</Category>
<Category>Constructors</Category>
<Category>Methods</Category>
</Categories>