Я читаю о паттерне «Состояние». Я только начал, поэтому, конечно, я начну с прочтения всей статьи в Википедии об этом.
Я заметил, что в обоих примерах в статье есть некоторый базовый абстрактный класс или интерфейс Java для общих методов / функций состояния. Затем есть несколько состояний, которые наследуются от базы и по-разному реализуют эти методы / функции. Затем есть класс Context, который имеет закрытый член типа State и который в любой момент может быть равен экземпляру одной из реализаций. Этот класс контекста также реализует те же методы и передает их в экземпляр текущего состояния, а затем имеет дополнительный метод для изменения состояния (или, в зависимости от дизайна, я понимаю, что изменение состояния может быть реакцией на один из реализованных методов) .
Почему этот класс контекста специально не «расширяет» или не «реализует» общий базовый класс / интерфейс State?