Паттерн Состояние управляет изменением поведения объекта при изменении его внутреннего состояния. Внешнее это выглядит так, словно объект меняет свой класс. Паттерн Состояние позволяет объекту иметь много разный вариантов поведения в зависимости от его внутреннего состояния. В отличие от процедурных конечных автоматов, состояние в этом паттерне представляется полноценным классом. Поведение контекста реализуется делегированием выполняемых операций текущему […]
Рубрика: Поведенческие паттерны
Паттерн Итератор на C#
Паттерн Итератор предоставляет механизм последовательного перебора элементов коллекции без раскрытия ее внутреннего представления. Кроме того, перебор элементов выполняется объектом итератора, а не самой коллекцией.Это упрощает интерфейс, и реализацию коллекции, а также способствует более логичному распределению обязанностей. При использовании итераторов коллекция избавляется от одной обязанности поддержки операций перебора данных. Итератор предоставляет общий интерфейс перебора элементов коллекции, […]
Паттерн Шаблонный Метод
Паттерн Шаблонный Метода задает скелет алгоритма в методе, оставляя определение реализации некоторых шагов субклассам. Субклассы могут переопределять некоторые части алгоритма без изменения его структуры. Основной задаче паттерна является создание шаблона алгоритма, то есть метод определяющий алгоритм в виде последовательности шагов. Один или несколько шагов определяются ввиде абстрактных методов, реализуемых субклассами. Таким образом гарантируется неизменность структуры […]
Паттерн Команда на C#
Паттерн Команда инкапсулирует запрос в виде объекта, делая возможной параметризацию клиентских объектов с другими запросами, организацию очереди или регистрацию запросов, а также поддержку отмены операций. Паттерн Команда отделяет объект, выдающий запросы, от объекта, который умеет эти запросы выполнять. Объект команды инкапсулирует получателя с операцией или набором операций. Инициатор вызываем метод Execute() объекта команды что приводит […]
Паттерн Наблюдатель на C#
Для понимания этого паттерна можно представить следующую ситуацию. Все мы используем социальные сети, и многие из нас подписаны на какие-то рассылки, групп. В таком аспекте мы являемся наблюдателями Observer, а владелиц группы издателем Subject. Хоть там за кулисами мы и не видим всего происходящего, но именно этот паттерн там реализован. Если бы владелец, вручную делал […]