Рубрики
Uncategorized

Анализ режима прототипа шаблона проектирования PHP

Автор оригинала: David Wong.

В этой статье описывается прототип шаблона шаблона проектирования PHP. Подробности заключаются в следующем:

Обычно мы используем new для добавления объектов, но часто для добавления объекта требуется некоторая работа. В межзвездном пространстве часто добавляется большое количество объектов определенных классов, таких как пулеметчики и драгуны.

Проблемы, которые необходимо решить: Можем ли мы уменьшить использование new и избежать знания имени класса объекта, когда нам нужно добавить новые объекты.

Мышление: PHP5 предоставляет метод клонирования, мы можем добавить объект, а затем каждый раз, когда нам нужно добавить объект того же типа, мы можем его клонировать.

Прототип модели пример:

php
  //Machine gunners
  class Marine
  {
    //The user ID to which it belongs
    public $playerID

    //Constructor, the parameter is the ID of the user
    public function __construct($id)
    {
      $this->playerID = $id;
    }
  }

  //Management of arms
  class TroopManager
  {
    //Array, used to store prototypes of multiple arms
    public $troopPrototype = array();

    //Add a prototype. The first parameter is the name of the prototype, and the second parameter is the prototype object
    public function addPrototype($name, $prototype)
    {
      $this->troopPrototype[$name] = $prototype;
    }

    //Get the clone of the prototype, that is, replace the new method, and the parameter is the name of the prototype
    public function getPrototype($name)
    {
      return clone $this->troopPrototype[$name];
    }
  }

  //Initial arms management
  $manager = new TroopManager();

  //Initialize two prototypes of machine gunners belonging to different players
  $m1 = new Marine(1);
  $m2 = new Marine(2);

  //Add a prototype and name it after a more memorable name
  $manager->addPrototype('Marine of 1', $m1);
  $manager->addPrototype('Marine of 2', $m2);

  //When we need to add a new object, we don't need to know the class name and initialization of the object
  $m3 = $manager->getPrototype('Marine of 1');
?>

Краткое описание использования: Модель прототипа может инкапсулировать рабочие детали новых объектов.

Краткое описание реализации: Класс управления прототипами необходим для реализации методов добавления и получения прототипов-клонов. Обратите внимание, что некоторые вещи здесь опущены для краткости. На самом деле, мы можем внести некоторые изменения в метод клонирования или использовать интерфейс для стандартизации каждого класса прототипов.

Подробнее о содержании, связанном с PHP, заинтересованные читатели могут ознакомиться со специальными разделами этого веб-сайта: “Вводный учебник по объектно-ориентированному программированию PHP”, “Энциклопедия навыков работы с массивами PHP”, “Вводный учебник по базовой грамматике PHP”, “Краткое описание операций PHP и использования операторов”, “Краткое описание использования строк PHP”, “Вводный учебник по работе с базой данных PHP + MySQL” и “Общая работа с базой данных PHP” Краткое описание навыков написания

Я надеюсь, что эта статья будет полезна для программирования на PHP.