<MyRusakov.ru />

Написание лайфхаков на Python

Написание лайфхаков на Python

Данный курс научит Вас автоматизировать самые разные задачи на языке Python, благодаря чему Вы сэкономите на рутине тысячи и тысячи часов своей жизни. Курс состоит из 20 примеров в различных областях: файлы и директории, медиа-файлы, Интернет, Web-мастеринг, Unreal Engine. Каждый пример упрощает ту или иную задачу в своей области, при этом каждый из них создаётся прямо на Ваших глазах и тщательно комментируется.

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

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

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

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

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

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

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

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

Зачем Вы изучаете программирование/создание сайтов?

Шаблон проектирования Фасад. Pattern Facade.

Шаблон проектирования Фасад. Pattern Facade.

Всем привет. Сегодня мы рассмотрим шаблон проектирования "Фасад"(Pattern Facade). Он очень прост для понимания и осмысления, но на практике его применить достаточно сложно.

Описание

Суть его заключается в том, чтобы сделать общий интерфейс для подсистем. К примеру, рассмотрим стиральную машинку. У нее есть множество разных подсистем: регулировка воды, сушилка, отжим, поворот барабана и другие. Однако, пользователю они не нужны. Зачем нам, к примеру, подсистема поворота барабана? Правильно, она нам не нужна. Все, что нам нужно, это выставить температуру и нажать кнопку. В некоторых машинах достаточно выбрать тип белья, и она автоматически подберет наилучшую температуру. Вот эта наша кнопка запуска и есть фасад - общий интерфейс, который сам управляет подсистемами.

Пример кода реализации

<?php
  class CPU {
   public function fz() { /* code... */}
   public function leap($pos) { /* code... */}
   public function performance() { /* code... */}
  }

  class Memory {
   public function charge($pos, $info) { /* code... */}
  }

  class HardDrive {
   public function lection($lba, $scale) { /* code... */}
  }

  class Computer {
   protected $cpu;
   protected $memory;
   protected $hardDrive;

   public function __construct() {
    $this->cpu = new CPU();
    $this->memory = new Memory();
    $this->hardDrive = new HardDrive();
   }

   public function startComputer() {
    $this->cpu->fz();
    $this->memory->charge( BOOT_ADDRESS, $this->hardDrive->lection(b_sector, sector_s);
    $this->cpu->leap(adress);
    $this->cpu->performance();
   }
  }

  $facade = new Computer();
  $facade->startComputer();
?>

Как видите, у нас есть несколько классов, несколько подсистем компьютера: CPU, Memory, HardDrive. За что они отвечают, думаю, понятно. Однако, зачем они нам все по отдельности, верно? Вот, чтобы избавиться от этого, мы создаем наш фасад - Computer, в котором создаем метод startComputer, который будет использовать подсистемы для запуска компьютера.

Для понимания этот шаблон очень прост, вся сложность заключается в применении его на практике, потому что трудно найти все эти зависимости, подсистемы, которые можно объединить в один фасад. Однако, если вы нашли такие зависимости у себя в коде и их у вас уже больше 10 штук, то следут создавать фасад.

Итак, на этом все для сегодняшней статьи. Спасибо за внимание!

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

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

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

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

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

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

  1. Кнопка:

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

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

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

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

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

ScarEngineer ScarEngineer 15.06.2014 13:20:49

Спасибо за статью! А грамотно ли будет этот паттерн использовать при создании движка? То есть есть, например, шаблонизатор, класс для работы с бд, роутер и.т.д. а с помощью общего класса запускать их как единую систему?

Ответить

php_programmer php_programmer 15.06.2014 15:45:11

Да, вполне возможно.

Ответить

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