Ta konkretna implementacja, tak. Jeśli uczynisz stany konkretnymi klasami, a nie abstrakcyjnymi implementatorami, to odejdziesz od tego.
Jednak wzorzec stanu, do którego się odwołujesz, jest w rzeczywistości projektem maszyny stanów, ogólnie rzecz biorąc, nie zgadzam się z tym, jak widzę, jak rośnie. Sądzę, że istnieją wystarczające podstawy, aby potępić to jako naruszenie zasady pojedynczej odpowiedzialności, ponieważ te wzorce zarządzania stanem stają się centralnymi repozytoriami wiedzy o obecnym stanie wielu innych części systemu. Ten element zarządzania stanem, który jest scentralizowany, będzie wymagał reguł biznesowych istotnych dla wielu różnych części systemu w celu ich racjonalnej koordynacji.
Wyobraź sobie, że wszystkie części systemu, które dbają o stan, znajdują się w różnych usługach, różnych procesach na różnych maszynach, centralny menedżer statusu, który szczegółowo określa status każdego z tych miejsc, skutecznie wąskie gardła całego tego rozproszonego systemu i myślę, że wąskie gardło jest znakiem naruszenia SRP, a także ogólnie złego projektu.
W przeciwieństwie do tego sugerowałbym, aby uczynić obiekty bardziej inteligentnymi, ponieważ w obiekcie Model we wzorze MVC, w którym model wie, jak sobie radzić, nie potrzebuje zewnętrznego orkiestratora, aby zarządzać swoimi wewnętrznymi działaniami lub uzasadnieniem.
Nawet umieszczając taki wzór stanu wewnątrz obiektu, aby zarządzał tylko sobą, wydaje się, że zrobiłbyś ten obiekt zbyt dużym. Powiedziałbym, że przepływy pracy powinny odbywać się poprzez komponowanie różnych samowystarczalnych obiektów, a nie za pomocą jednego uporządkowanego stanu, który zarządza przepływem innych obiektów lub przepływem inteligencji w sobie.
Ale w tym momencie jest to więcej sztuki niż inżynierii, a zatem zdecydowanie subiektywne jest twoje podejście do niektórych z tych rzeczy, które mówi, że zasady są dobrym przewodnikiem i tak, implementacja, którą wymieniasz, jest naruszeniem LSP, ale może być poprawiona, aby nie była. Zachowaj ostrożność podczas korzystania z SRP podczas korzystania z tego rodzaju wzorów i prawdopodobnie będziesz bezpieczny.