Какой бы класс ни контролировал время жизни других объектов, создающих эти объекты.
В вашем примере, если A
управляет временем жизни этого конкретного экземпляра B
, тогда можно создать B
в конструкторе.
Однако, если другой класс управляет временем жизни (или владеет) объекта из B
, то экземпляр B
должен быть передан в A
в конструкторе.
Тест прост: класс, отвечающий за время жизни других объектов, отвечает за создание этих объектов.