<MyRusakov.ru />

PHP и MySQL с Нуля до Гуру

PHP и MySQL с Нуля до Гуру

Данный курс - это более 20-ти часов видеоуроков по изучению PHP и MySQL. Ключевой момент курса - это создание движка для сайта с нуля. Каждая строчка комментируется. Практически для каждого урока имеются упражнения. Причём данные упражнения направлены не только на закрепление материала, но и на реализацию реальных задач, встающих перед Web-разработчиками при создании сайтов. После курса Вы сможете без проблем создавать движки для любых сайтов.

Также почти к каждому уроку идут упражнения для закрепления материала.

Просмотрев курс и выполнив упражнения, Вы сможете без проблем создавать функциональные движки для самых различных сайтов.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Шаблон проектирования "Стратегия"(Pattern Strategy).

Шаблон проектирования "Стратегия"(Pattern Strategy).

Продолжаем говорить про паттерны проектирования и сегодня мы рассмотрим шаблон проектирования "стратегия"(pattern strategy).

Суть данного шаблона проста - в зависимости от каких-то условий выбрать нужную тактику. Лучше рассмотреть на практике.

<?php
  abstract class FileNamingStrategy {
   abstract function createLinkName($fileName);
  }
  class ZipFile extends FileNamingStrategy {
   function createLinkName($fileName) {
    return "http://localhost/download/$fileName.zip";
   }
  }
  class TarGzFile extends FileNamingStrategy {
   function createLinkName($fileName) {
    return "http://localhost/download/$fileName.tar.gz";
   }
  }
  class FileStrategy {
   protected $_type;
   function __construct() {
    if(strstr($_SERVER["HTTP_USER_AGENT"], "Win"))
     $this->_type = new ZipFile();
    else
     $this->_type = new TarGzFile();
   }
   public function getLink($name) {
    return $this->_type->createLinkName($name);
   }
  }
  $obj = new FileStrategy();
  $link1 = $obj->getLink("file_one");
  $link2 = $obj->getLink("file_two");

  print <<<LIST
  <h1>Список файлов для скачивания:</h1>
  <p>
  <a href="$link1">Первый файл</a>
  <a href="$link2">Второй файл</a>
  </p>
  LIST;
?>

Итак, у нас есть 2 класса: ZipFile и TarGzFile. Первый возвращает нам ссылку на скачивание файла в .zip формате, а второй в .tar.gz формате. В классе FileStrategy, в конструкторе, мы проверяем заголовок USER_AGENT и, если там присутствуют буквы Win, то создаём объект класса ZipFile, иначе же создаём объект класса TarGzFile. Потом мы создаём объект FileStrategy и вызываем метод getLink, который вернёт нам наш файл в нужном формате. Т.е. суть его в том, что мы не знаем, какой объект у нас будет, за нас это проверяет наш класс и возвращает нужный.

Итак, сегодня мы разобрали ещё один очень часто используемый шаблон проектирования "стратегия".

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.