Почему конструктор класса не должен быть тяжёлым?

В интернете натыкался на мнение, что конструктор класса не должен быть тяжёлым. Но почему? И как определить допустимую степень “тяжёлости”? :thinking:
Например, передать в конструктор JSON-строку и там её распарсить - это тяжело?

хз, надо спрашивать у тех, кто это говорит )
Майкрософт тоже так рекомендует. Constructor Design - Framework Design Guidelines | Microsoft Learn

Думаю тут в первую очередь дело в том, что так сложилось и обычно другие разработчики ожидают, что конструктор не будет выполняться полчаса или делать кучу вещей.
Ну и наверно это нарушает какие-то пункты SOLID. :kolobokcrossing:

Еще вроде бы какие-то сложности могут быть при написании автоматических тестов (юнит тестов), но я не очень понял почему, большая часть статьи и примеров вообще не про тяжесть самого конструктора, а про то, что внутри конструктора создаются другие объекты (вместо передачи параметрами) и их нельзя заменить, но такая проблема может быть и не в конструкторе. Flaw: Constructor does Real Work