Это конкретная реализация, да. Если вы сделаете состояния конкретными классами, а не абстрактными разработчиками, тогда вы избежите этого.
Однако шаблон состояния, на который вы ссылаетесь, который, по сути, является проектом конечного автомата, в общем, я не согласен с тем, как я его вижу. Я думаю, что есть достаточные основания для того, чтобы осудить это как нарушение принципа единой ответственности, потому что эти шаблоны управления состоянием в конечном итоге становятся центральными хранилищами для знания текущего состояния многих других частей системы. Этот централизованный элемент управления состоянием чаще всего требует бизнес-правил, относящихся ко многим различным частям системы, для их разумной координации.
Представьте себе, что все части системы, которые заботятся о состоянии, находятся в разных сервисах, в разных процессах на разных машинах, в центральном диспетчере состояния, который детализирует статус для каждого из этих мест, эффективно являются узкими местами всей этой распределенной системы, и я думаю, что узкое место является признаком нарушения SRP, а также вообще плохой дизайн.
Напротив, я бы предложил сделать объекты более интеллектуальными, как в объекте Model в паттерне MVC, где модель знает, как обращаться с собой, ей не нужен внешний оркестратор для управления своими внутренними действиями или причинами для этого.
Даже помещая такой шаблон состояния внутри объекта, чтобы он управлял только собой, создается впечатление, что вы сделали бы этот объект слишком большим. Я бы сказал, что рабочие процессы должны осуществляться через композицию различных самодостаточных объектов, а не с помощью одного организованного состояния, которое управляет потоком других объектов или потоком интеллекта внутри себя.
Но в этот момент это больше искусство, чем разработка, и поэтому определенно субъективно вы подходите к некоторым из этих вещей, в которых говорится, что принципы являются хорошим руководством, и да, реализация, которую вы перечислите, является нарушением LSP, но ее можно исправить, чтобы не допустить. Просто будьте очень осторожны с SRP при использовании любого шаблона такого рода, и вы, вероятно, будете в безопасности.