Статья
Шаблон проектирования "Прототип"

Шаблон проектирования "Прототип"

11 декабря 2017

Создадим прототип книги детективного жанра:

abstract class BookPrototype
{
    protected $title;

    protected $category;

    abstract public function __clone();

    public function getTitle()
    {
        return $this->title;
    }

    public function setTitle($title)
    {
        $this->title = $title;
    }
}

class DetectiveBookPrototype extends BookPrototype
{
    protected $category = 'DetectiveBook';

    public function __clone()
    {
        // ...
    }
}

 

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

$bookPrototype = new DetectiveBookPrototype();

for ($i = 0; $i < 100; $i++) {
    $book = clone $bookPrototype;
    $book->setTitle('Detective Book № ' . $i);
}



Источники:

http://designpatternsphp.readthedocs.io/ru/latest/Creational/Prototype/README.html