Category Archives: Архитектура ИТ-систем

Шаблон проектирования Memento

Memento – хранитель, он же – token, лексема. Сохраняет и выносит за пределы объекта его внутреннее состояние, чтобы позднее можно было восстановить объект в сохраненном состоянии. Самая очевидная сфера применения шаблона Memento – реализация откатов в работе программ. Например, вы обрабатываете фотографию, применили несколько фильтров, но результат не понравился и вы хотите вернуться на несколько… Read More »

Использование pid-файлов для предотвращения повторного запуска скрипта

Использование модулей File::Pid, Pid::File::Flock и File::Flock::Tiny. Блокировки файлов, работа с pid-файлами. Работа только одной копии скрипта в один момент времени. Защита от повторного запуска одного и того же скрипта, до того, как первый экземпляр завершит свою работу.

Использование MooseX::Singleton в Catalyst-приложении

Использование MooseX::Singleton в Catalyst-приложении на конкретном примере, при реализации работы с конфигурационными данными. Использование паттерна “Singleton” в Catalyst-приложении. Примеры кода. Примеры использования Class::Accessor.

Что такое абстрактный класс в perl?

Что такое абстрактный класс? Чем интерфейс отличается от абстрактного класса. Примеры реализации абстрактного класса и интерфейса в perl. Использование Class::Interface Абстрактный класс в ООП — это базовый класс, который не предполагает создания своих экземпляров. Абстрактный класс может содержать абстрактные методы и атрибуты. Абстрактный класс является яркой демонстрацией одного из основных принципов ООП – полиморфизма. В… Read More »

Что такое метаклассы в perl? Использование Class::MOP

Что такое метаклассы. Для чего нужны метаклассы. Что такое метаобъектный протокол. Что такое Class::MOP. Для чего используется Class::MOP. Что такое метаклассы? В ООП метаклассом является класс, экземплярами которого являются не объекты, как обычно, а классы. Так же, как обычный класс определяет поведение некоторых объектов, метакласс определяет поведение некоторых классов и их экземпляров.

Шаблон проектирования Abstract Factory

Абстрактная фабрика – паттерн, порождающий объекты. Известен также под именем Kit (инструментарий). Абстрактная фабрика – это код, который решает, какой из множества подклассов должен использоваться в данный момент. Исходный код запрашивает экземпляр класса. Данный класс возвращает экземпляр подкласса, который наиболее соответствует условиям. Подобный класс называют абстрактной фабрикой. Допустим, мы имеем дело с базой данных. В… Read More »

Шаблон проектирования Facade

Шаблон проектирования Facade используется для предоставления простого в использовании интерфейса к сложному набору интерфейсов и подсистем. Шаблон позволяет скрыть детали реализации систем, упрощая работу с конечным продуктом.   Краткое описание Допустим, у нас есть некоторое программное обеспечение, которое предоставляет доступ к системе компиляции программного кода. Каждый компилятор имеет множество подклассов: лексический анализатор, синтаксический анализатор, и… Read More »

Шаблон проектирования Iterator

Итератор – паттерн поведения объектов. Предоставляет способ последовательного доступа ко всем элементам составного объекта, не раскрывая его внутреннего представления. Известен также под именем Cursor (курсор). Составной объект, скажем список, должен предоставлять способ доступа к своим элементам, не раскрывая их внутреннюю структуру. Более того, иногда требуется обходить список по-разному, в зависимости от решаемой задачи. Все это… Read More »

Шаблон проектирования Singleton

Данный шаблон гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа. Класс сам контролирует то, что у него есть только один экземпляр, может запретить создание дополнительных экземпляров, перехватывая запросы на создание новых объектов, и он же способен предоставить доступ к своему экземпляру. Это и есть назначение паттерна “одиночка”. Пример… Read More »