Основы алгоритмов

Алгоритм представляет собой последовательность шагов, которая призвана решить определенную задачу. Иными словами алгоритм — это способ решения этой задачи. В этом качестве алгоритм применяется для обозначения метода решения любых, в том числе и повседневных задач. Но в данном случае речь…

Читать далее

Приспособленец (Flyweight)

Паттерн Приспособленец (Flyweight) — структурный шаблон проектирования, который позволяет использовать разделяемые объекты сразу в нескольких контекстах. Данный паттерн используется преимущественно для оптимизации работы с памятью. В качестве стандартного применения данного паттерна можно привести следующий пример. Текст состоит из отдельных символов.…

Читать далее

Мост (Bridge)

Мост (Bridge) — структурный шаблон проектирования, который позволяет отделить абстракцию от реализации таким образом, чтобы и абстракцию, и реализацию можно было изменять независимо друг от друга. Даже если мы отделим абстракцию от конкретных реализаций, то у нас все равно все…

Читать далее

Заместитель (Proxy)

Паттерн Заместитель (Proxy) предоставляет объект-заместитель, который управляет доступом к другому объекту. То есть создается объект-суррогат, который может выступать в роли другого объекта и замещать его. Когда использовать прокси? Когда надо осуществлять взаимодействие по сети, а объект-проси должен имитировать поведения объекта…

Читать далее

Компоновщик (Composite)

Паттерн Компоновщик (Composite) объединяет группы объектов в древовидную структуру по принципу «часть-целое и позволяет клиенту одинаково работать как с отдельными объектами, так и с группой объектов. Образно реализацию паттерна можно представить в виде меню, которое имеет различные пункты. Эти пункты…

Читать далее

Фасад (Facade)

Фасад (Facade) представляет шаблон проектирования, который позволяет скрыть сложность системы с помощью предоставления упрощенного интерфейса для взаимодействия с ней. Когда использовать фасад? Когда имеется сложная система, и необходимо упростить с ней работу. Фасад позволит определить одну точку взаимодействия между клиентом…

Читать далее

Фасад (Facade)

Фасад (Facade) представляет шаблон проектирования, который позволяет скрыть сложность системы с помощью предоставления упрощенного интерфейса для взаимодействия с ней. Когда использовать фасад? Когда имеется сложная система, и необходимо упростить с ней работу. Фасад позволит определить одну точку взаимодействия между клиентом…

Читать далее

Адаптер (Adapter)

Паттерн Адаптер (Adapter) предназначен для преобразования интерфейса одного класса в интерфейс другого. Благодаря реализации данного паттерна мы можем использовать вместе классы с несовместимыми интерфейсами. Когда надо использовать Адаптер? Когда необходимо использовать имеющийся класс, но его интерфейс не соответствует потребностям Когда…

Читать далее

Декоратор (Decorator)

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

Читать далее

Посетитель (Visitor)

Паттерн Посетитель (Visitor) позволяет определить операцию для объектов других классов без изменения этих классов. При использовании паттерна Посетитель определяются две иерархии классов: одна для элементов, для которых надо определить новую операцию, и вторая иерархия для посетителей, описывающих данную операцию. Когда…

Читать далее