Фасад (Facade)

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

Читать далее

Адаптер (Adapter)

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

Читать далее

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

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

Читать далее

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

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

Читать далее

Хранитель (Memento)

Паттерн Хранитель (Memento) позволяет выносить внутреннее состояние объекта за его пределы для последующего возможного восстановления объекта без нарушения принципа инкапсуляции. Когда использовать Memento? Когда нужно сохранить состояние объекта для возможного последующего восстановления Когда сохранение состояния должно проходить без нарушения принципа…

Читать далее

Посредник (Mediator)

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

Читать далее

Интерпретатор (Interpreter)

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

Читать далее

Цепочка Обязанностей (Chain of responsibility)

Цепочка Обязанностей (Chain of responsibility) — поведенческий шаблон проектирования, который позволяет избежать жесткой привязки отправителя запроса к получателю. Все возможные обработчики запроса образуют цепочку, а сам запрос перемещается по этой цепочке. Каждый объект в этой цепочке при получении запроса выбирает,…

Читать далее

Состояние (State)

Общая инфа Состояние (State) — шаблон проектирования, который позволяет объекту изменять свое поведение в зависимости от внутреннего состояния. Когда применяется данный паттерн? Когда поведение объекта должно зависеть от его состояния и может изменяться динамически во время выполнения Когда в коде…

Читать далее

Итератор (Iterator)

Паттерн Итератор (Iterator) предоставляет абстрактный интерфейс для последовательного доступа ко всем элементам составного объекта без раскрытия его внутренней структуры. Наверное, всем программистам, работающим с языком C#, приходилось иметь дело с циклом foreach, который перебирает объекты в массиве или коллекции. При этом…

Читать далее