Рубрика: Поведенческие паттерны

Паттерн Состояние на C#

Паттерн Состояние управляет изменением поведения объекта при изменении его внутреннего состояния. Внешнее это выглядит так, словно объект меняет свой класс. Паттерн Состояние позволяет объекту иметь много разный вариантов поведения в зависимости от его внутреннего состояния. В отличие от процедурных конечных автоматов, состояние в этом паттерне представляется полноценным классом. Поведение контекста реализуется делегированием выполняемых операций текущему […]

Паттерн Итератор на C#

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

Паттерн Шаблонный Метод

Паттерн Шаблонный Метода задает скелет алгоритма в методе, оставляя определение реализации некоторых шагов субклассам. Субклассы могут переопределять некоторые части алгоритма без изменения его структуры. Основной задаче паттерна является создание шаблона алгоритма, то есть метод определяющий алгоритм в виде последовательности шагов. Один или несколько шагов определяются ввиде абстрактных методов, реализуемых субклассами. Таким образом гарантируется неизменность структуры […]

Паттерн Команда на C#

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

Паттерн Наблюдатель на C#

Для понимания этого паттерна можно представить следующую ситуацию. Все мы используем социальные сети, и многие из нас подписаны на какие-то рассылки, групп. В таком аспекте мы являемся наблюдателями Observer, а владелиц группы издателем Subject. Хоть там за кулисами мы и не видим всего происходящего, но именно этот паттерн там реализован. Если бы владелец, вручную делал […]