Skip to content

Latest commit

 

History

History

State

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

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

Паттерн State относится к поведенческим паттернам уровня объекта.

Паттерн State позволяет объекту изменять свое поведение в зависимости от внутреннего состояния и является объектно-ориентированной реализацией конечного автомата. Поведение объекта изменяется настолько, что создается впечатление, будто изменился класс объекта.

Паттерн должен применяться:

  • когда поведение объекта зависит от его состояния
  • поведение объекта должно изменяться во время выполнения программы
  • состояний достаточно много и использовать для этого условные операторы, разбросанные по коду, достаточно затруднительно

Требуется для реализации:

  1. Класс Context, представляет собой объектно-ориентированное представление конечного автомата;
  2. Абстрактный класс State, определяющий интерфейс различных состояний;
  3. Класс ConcreteStateA реализует одно из поведений, ассоциированное с определенным состоянием;
  4. Класс ConcreteStateB реализует одно из поведений, ассоциированное с определенным состоянием.

[!] В описании паттерна применяются общие понятия, такие как Класс, Объект, Абстрактный класс. Применимо к языку Go, это Пользовательский Тип, Значение этого Типа и Интерфейс. Также в языке Go вместо наследования используется композиция.

-- THE END --