• Закон Деметры. Нужен ли?

    EugeneOZ
    @EugeneOZ
    Так всё ж просто — возвращая объект, вы даёте внешнему коду юзать этот объект. И если раньше этот внешний код зависел только от API вашего объекта, то теперь будет зависеть ещё и от тех объектов, которые вы вернули. Так вы теряете контроль над API и возможность его безболезненно менять.

    Ну и chained-методы в динамических языках плохи тем, что один из элементов цепи может вернуть не объект, и тогда будет ошибка обращения к методу «не-объекта».

    Есть случаи-исключения, когда не нарушить этот закон нельзя (фабрики), но в целом — это один из самых больно бьющих законов, если его нарушать.
    Ответ написан
    1 комментарий