State
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
Состояние — это поведенческий паттерн, позволяющий динамически изменять поведение объекта при смене его состояния. Поведения, зависящие от состояния, переезжают в отдельные классы. Первоначальный класс хранит ссылку на один из таких объектов-состояний и делегирует ему работу. В данном примере состояния класса Orc реализованы с помощью вложенных классов: OrcChaosStatement OrcEatStrangeMushroomStatement OrcDrinkVodkaStatement Связанных с основным классом Orc с помощью HAS A (в классе Orc есть ссылка Абстрактного класса OrcStatement) Состояния переопределяют методы класса Orc Экземпляры состояний принимают в себя экземпляр Орка и наделяют его особыми ярко выраженными особенностями Состояние орка изменяется с помощью метода переключателя changeState()