Найти в Дзене
using Dev

Состояние C#

Паттерн "Состояние" (State) является поведенческим паттерном проектирования, который позволяет объекту изменять своё поведение во времени, сохраняя при этом его интерфейс неизменным. Паттерн "Состояние" позволяет объекту переключаться между множеством состояний, каждое из которых определяет поведение объекта. Описание Паттерн "Состояние" используется, когда поведение объекта зависит от его внутреннего состояния. Вместо того чтобы поместить всю логику состояния внутрь объекта, мы отделяем её в отдельные классы, называем их "состояниями". Эти состояния могут быть переключены во время выполнения программы, что позволяет объекту динамически менять своё поведение. Структура Паттерн "Состояние" состоит из следующих компонентов: Пример В данном примере рассмотрим работу паттерна на основе работы светофора. Создадим абстрактный класс State. А так же конкретный класс светофора TrafficLight. Создадим классы конкретных состояний. Расмотрим применение.
Оглавление

Паттерн "Состояние" (State) является поведенческим паттерном проектирования, который позволяет объекту изменять своё поведение во времени, сохраняя при этом его интерфейс неизменным. Паттерн "Состояние" позволяет объекту переключаться между множеством состояний, каждое из которых определяет поведение объекта.

Описание

Паттерн "Состояние" используется, когда поведение объекта зависит от его внутреннего состояния. Вместо того чтобы поместить всю логику состояния внутрь объекта, мы отделяем её в отдельные классы, называем их "состояниями". Эти состояния могут быть переключены во время выполнения программы, что позволяет объекту динамически менять своё поведение.

Структура

Паттерн "Состояние" состоит из следующих компонентов:

  • Объект (Context): Объект, поведение которого изменяется в зависимости от его состояния. Объект содержит ссылку на текущее состояние.
  • Состояние (State): Интерфейс, объявляющий методы, которые должны быть реализованы каждым состоянием.
  • Конкретные состояния (Concrete States): Классы, реализующие интерфейс состояния. Каждый конкретный класс состояния реализует некоторое поведение, соответствующее определенному состоянию объекта.
  • Глобальный состояние (Global State) / Фабричный метод (Factory Method): Метод, который устанавливает начальное состояние объекта. Может быть реализован через фабричный метод, который возвращает объект с начальным состоянием.

Пример

В данном примере рассмотрим работу паттерна на основе работы светофора.

Создадим абстрактный класс State. А так же конкретный класс светофора TrafficLight.

-2

Создадим классы конкретных состояний.

-3
-4

Расмотрим применение.

-5
-6

Наука
7 млн интересуются