Комментарии 6
Не хочу душнить, но автор +- понял только I и D принципы. Невероятно, но при этом учит других кодить.
Здравствуйте, могли бы конкретизировать, что не так?)
Возмём хотя бы S.
The Single Responsibility Principle states that a module (or class) should be responsible to one, and only one, actor. (C) Robert Martin
Если есть два "пользователя" конкретного функционала с разными задачами (например: менеджер и аноним), значит разноси на два класса. Вот так просто. Если анониму чтото надо дополнительно, менеджер не пострадает. Но чтобы это красиво работало нужно по хорошему сделать интерфейс (вот и D), абстрактный класс (тоже как вариант D, но здесь это ради Strategy и Method template). Создаем 2 наследника: для менеджера, для анонима. Делаем фабрику/мультитон чтобы выдать нужную инстанцию (для менеджера или анонима), а заодно и готовим место для testdouble обьекта. Мы же не хотим тестировать аппликацию с тяжелым или платным контекстом, правда? Вот поэтому, вы и видите "javu" вместо "легаси кода", который даже не тестируется . А вы говорите про 1 задачу, и разнесли все по функциям. А это уже другая совсем тема никак с SOLID не связанная.
Можно ли онести функциональный подход реализации в примерах SRP, OCP к SOLID принципам ООП?

SOLID в Python без воды