Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
Состояние — это поведенческий паттерн, позволяющий динамически изменять поведение объекта при смене его состояния.

Поведения, зависящие от состояния, переезжают в отдельные классы. Первоначальный класс хранит ссылку на один из таких объектов-состояний и делегирует ему работу.

В данном примере состояния класса Orc реализованы с помощью вложенных классов:
OrcChaosStatement
OrcEatStrangeMushroomStatement
OrcDrinkVodkaStatement
Связанных с основным классом Orc с помощью HAS A (в классе Orc есть ссылка Абстрактного класса OrcStatement)
Состояния переопределяют методы класса Orc
Экземпляры состояний принимают в себя экземпляр Орка и наделяют его особыми ярко выраженными особенностями

Состояние орка изменяется с помощью метода переключателя changeState()