Ця конкретна реалізація, так. Якщо ви будете робити штати конкретними класами, а не абстрактними реалізаторами, то ви від цього підете.
Однак загальноприйнята модель, на яку ви посилаєтесь, - це фактично конструкція машини машини - це взагалі те, з чим я не згоден із тим, як я бачив, як вона зростає. Я думаю, що є достатньо підстав визнати це порушенням принципу єдиної відповідальності, оскільки ці структури управління державою в кінцевому підсумку є центральними сховищами для знань про сучасний стан багатьох інших частин системи. Цей централізований орган управління, який централізується, частіше за все вимагатиме ділових правил, що стосуються багатьох різних частин системи, щоб їх розумно координувати.
Уявіть собі, якби всі частини системи, які піклуються про стан, були у різних службах, різних процесах на різних машинах, центральному менеджері статусу, який детально описує стан для кожного з цих місць ефективно вузьких місць у цій всій розподіленій системі, і я думаю, що вузьке місце є ознакою порушення SRP, а також поганий дизайн.
Навпаки, я б запропонував зробити об'єкти більш розумними, як в об'єкті Model в шаблоні MVC, де модель вміє керувати собою, їй не потрібен зовнішній оркестратор, щоб керувати своїми внутрішніми роботами або причиною цього.
Навіть поставивши такий зразок стану всередині об'єкта, щоб він лише керував собою, відчувається, що ви зробите цей об'єкт занадто великим. Я б сказав, що робочі процеси мають складатись із різних самовідповідальних об'єктів, а не з єдиним оркестрованим станом, який управляє потоком інших об'єктів або потоком інтелекту всередині себе.
Але в цей момент це більше мистецтво, ніж інженерія, і, безумовно, суб'єктивний ваш підхід до деяких речей, що сказав, що принципи є хорошим керівництвом, і так, реалізація, яку ви перераховуєте, є порушенням LSP, але це не може бути виправлено. Просто будьте дуже обережні щодо SRP, коли використовуєте будь-який зразок такого характеру, і ви, ймовірно, будете в безпеці.