È sempre bene o male avere un costruttore che crea nuove istanze di classi di cui ha bisogno rispetto al passaggio di un riferimento che desideri che la nuova classe abbia?
Quindi fondamentalmente è la differenza tra:
A classA = new A();
B classB = new B(classA);
e hanno un costruttore di classe B che assegna classA al suo campo / proprietà.
rispetto a:
B classB = new B();
e
public class B{
A classA {private set; get;}
//constructor
public B(){
classA = new A();
}
}
Il secondo esempio viola una singola responsabilità sin dalla sua creazione e assegnazione? Questa è troppa magia in quanto fa cose di cui il programmatore non è a conoscenza? Un costruttore dovrebbe mai farlo?