@thorii

Правильно ли я понимаю паттерн прототип?

class ResponseClassPrototype extends PrototypeAbstract implements Clonable {
 private $proto = null;

 public function __construct(Response $class) 
 {
   $this->proto = $class;
 }

 public function getClone() 
 {
   return clone $this->proto();
 };

 public function json() 
 {
   $response = $this->getClone();
   $response->setHeader('Content-type', 'application/json');

   return $response;
 }

//function html();
// ...

}


Подозреваю что тут смешана и фабрика и прототип. Это так? Можно ли вообще так делать?
  • Вопрос задан
  • 484 просмотра
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
А вы точно читали что это за паттерн и чем он от фабрики отличается?

В целом ответить на вопрос можно если вы приведете пример использования данного паттерна. Ну и еще учитывайте такой момент - в вашем примере использование прототипа не рационально - клонирование таких объектов как request не сильно то и дорогое.

p.s. метод `getClone` должен быть приватным. В остальном вроде бы все ок.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы