когда открыты другие. Решил это реализовать при помощи паттерна стейт, но не могу понять как мне переключать состояния, если клиент не должен знать ничего о конкретных состояниях?
Когда активен state отключай другие state, т. е. активно всегда одно окно. Или в чем вопрос?
Объясню на примере инвентаря. Я отлавливаю нажатие "I" в классе Input и включаю инвентарь. После этого мне нужно изменить state на ShowInventory. Я бы мог написать метод SwitchState(State state) и вызвать его в классе Input с аргументом ShowInventory, но тогда я указываю конкретный стейт, а это как я понял это является грубейшим нарушением.
Ну ты ведь инпутом активируешь определённую вьюшку, так? А state, как я понимаю у тебя связаны как раз с вьюшкой. Я думаю тебе нужен адаптер, который бы связывался инпут и активацию определённого стейта в стейт машине
Обсуждают сегодня