Обновить

Комментарии 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 принципам ООП?

По сути только SRP. Есть риск что для каждого актора будет дублироваться код. Все остальные принципы не применимы.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации