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 --