Рубрики
Uncategorized

Определение и использование шаблонов шаблонов в шаблонах проектирования PHP

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

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

Шаблон шаблона подготавливает абстрактный класс, реализует некоторую логику в конкретных методах и конкретных конструкциях, а затем объявляет некоторые абстрактные методы, чтобы заставить подклассы реализовать оставшуюся логику. Различные подклассы могут реализовывать эти абстрактные методы по-разному, тем самым по-разному реализуя оставшуюся логику. Во-первых, разрабатывается логическая структура верхнего уровня, и детали логики оставляются для реализации конкретным подклассам.

Диаграмма классов UML:

Роль:

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

Конкретные роли подкласса (XiaoMi): Реализация абстрактных методов в Make Phone подклассы могут иметь свои собственные уникальные формы реализации, но процесс выполнения контролируется MakePhone.

Основной код:

php
/**
 * Created by PhpStorm->
 * User extends Jang
 * Date extends 2015/6/10
 * Time extends 11 extends 06
 */
// abstract template class
abstract class MakePhone
{
  protected $name;
  public function __construct($name)
  {
    $this->name=$name;
  }
  public function MakeFlow()
  {
    $this->MakeBattery();
    $this->MakeCamera();
    $this->MakeScreen();
    Echo $this - > name. 
"; } public abstract function MakeScreen(); public abstract function MakeBattery(); public abstract function MakeCamera(); } // Millet Mobile Phone class XiaoMi extends MakePhone { Public function _construct ($name='millet') { parent::__construct($name); } public function MakeBattery() { Echo "millet battery production finished!
"; } public function MakeCamera() { The production of millet camera is finished!
"; } public function MakeScreen() { Echo "Millet screen production finished!
"; } } // Meizu Mobile Phone class FlyMe extends MakePhone { Function _construct ($name='Meizu') { parent::__construct($name); } public function MakeBattery() { Echo "Meizu Battery is finished!
"; } public function MakeCamera() { Echo "Meizu Camera is finished!
"; } public function MakeScreen() { Echo "Meizu screen production finished!
"; } }

Вызовите тестовый код клиента:

header("Content-Type:text/html;charset=utf-8");
// ----------------------------------------- template pattern - ------------------------------------------------------------------------------------------------------
require_once "./Template/Template.php";
$miui=new XiaoMi();
$flyMe=new FlyMe();
$miui->MakeFlow();
$flyMe->MakeFlow();

Результаты операции:

Производство батарей из проса завершено! Производство камеры из проса завершено! Производство просяного сита завершено! Производство мобильных телефонов из проса завершено! —————————————————————————– Батарея Meizu закончена! Камера Meizu закончена! Производство экрана Meizu завершено! Производство мобильных телефонов Meizu завершено! ——————————————————————————–

Применимые сценарии и преимущества:

1. Выполните процесс или серию шагов с постоянным уровнем детализации, но отдельные шаги могут быть реализованы по-разному на более детальном уровне. Обычно мы рассматриваем возможность использования режима шаблона для решения этой проблемы.

2. Когда инвариантное и переменное поведение смешиваются вместе в реализации подклассов методов, инвариантное поведение будет повторяться в подклассах. Мы перемещаем эти модели поведения в одно место с помощью шаблона шаблона, который помогает подклассам избавиться от запутанности повторяющихся инвариантных моделей поведения.

3. Шаблон шаблона воплощает свое преимущество, перенося инвариантное поведение в супер абстрактный класс и удаляя дублирующийся код в подклассе. Шаблон шаблона обеспечивает хорошую платформу для повторного использования кода.

Больше читателей, интересующихся контентом, связанным с PHP, могут ознакомиться с темами этого сайта: Введение в объектно-ориентированное программирование Php, Введение в Навыки работы с массивами PHP, Введение в базовую грамматику PHP, Краткое описание работы PHP и использования операторов, Краткое описание использования строк Php, Введение в работу с базой данных php+mysql и Общие операции с базами данных php. Краткое изложение навыков письма ___________

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

Оригинал: “https://developpaper.com/the-definition-and-usage-of-template-patterns-in-php-design-patterns/”