поддерживает определенные методы? Например, у объекта есть три состояния: настройка, запуск, результат работы. При этом во время работы программы должны быть доступны методы только текущего состояния.
Сделать эти состояния разными объектами?
Доступны — это как ?
https://refactoring.guru/ru/design-patterns/state
То есть вызов метода одного состояния на объекте в другом состоянии не приводит к ошибке. Можно, конечно, таким образом заифать все состояния на запуске методов, но это как-то убого
Ну тогда у реализаций методов нужно учитывать ситуации, когда состояние неверное. Например, есть метод, который что-то подсчитывает в объекте и возвращает число, но он может быть вызван только в состоянии 1. Как его тогда реализовать в состоянии 2? Он будет возвращать 0/-1?
Я бы делал не совсем как в паттерне. Просто разные объекты для разного стейта, без общего интерфейса
Обсуждают сегодня