È consigliabile inizializzare le dipendenze delle classi in un costruttore o se una classe deve essere inizializzata nel metodo in cui viene utilizzata. Diciamo che abbiamo la seguente situazione, e PriceCalcService è usato solo in un paio di metodi. L'ordine prende anche altri parametri e imposta il suo stato.
public class ShippingService() { .......... }
public class Order() {
public string SomeOrderProperty;
private PriceCalcService priceCalcService;
public Order(string someOrderproperty) {
priceCalcService= new PriceCalcService();
SomeOrderProperty = someOrderProperty;
}
public void Method1() {
PriceCalcService.MethodX();
}
.......
}
O il PriceCalcService dovrebbe essere inizializzato solo nei metodi che lo usano?
public class PriceCalcService() { .......... }
public class Order() {
public string SomeOrderProperty;
public Order(string someOrderproperty) {
SomeOrderProperty = someOrderproperty;
}
public void Method1() {
new PriceCalcService().MethodX();
}
.......
}
Primo esempio: Vantaggio: possiamo vedere le dipendenze Svantaggio: istanziamo una classe anche se non viene utilizzata. Quale metodo dovrei scegliere?