Статья
Шаблон проектирования "Фабричный метод"

Шаблон проектирования "Фабричный метод"

6 декабря 2017

Создадим интерфейс Car и 2 реализации - Audi и Mercedes.

interface Car
{
    public function getName();
}

class Audi implements Car
{
    public function getName()
    {
        echo 'Audi';
    }
}

class Mercedes implements Car
{
    public function getName()
    {
        echo 'Mercedes';
    }
}

 

Создадим фабричные методы.

interface CarCreator {
    public function create();
} 
 
class AudiCreator implements CarCreator {
    public function create() {
        return new Audi();  
    }
}

class MercedesCreator implements CarCreator {
    public function create() {
        return new Mercedes();  
    }
}

 

Использование:

$creator = new MercedesCreator();
$mercedes = $creator->make();



Источники:

http://designpatternsphp.readthedocs.io/ru/latest/Creational/FactoryMethod/README.html
https://habrahabr.ru/company/mailru/blog/325492/