quali sono le dipendenze esterne che una classe dovrebbe avere

-2

dalla mia classe includo tutte le dipendenze nel costruttore.

per decidere quali dipendenze passare quali regole dovrei seguire?

quando decido di utilizzare i parametri di un metodo al posto del costruttore?.

Esempio concreto.

Ho un servizio che esegue un'operazione su DB. Per fare questo deve avere 3 repository di classi che vengono iniettati tramite il costruttore e due parametri l'oggetto del db e una struttura di input di dati

class Foo(Repo1, Repo2, Repo3) 
{
   function doSomething(objectToDB, objectInputData);
} 

prima di postare avevo messo tutto nel costruttore. Ma poi ho avuto forti dubbi e ho deciso di chiedere

La domanda è più completa? Grazie

    
posta BruceStackOverFlow 29.07.2018 - 23:34
fonte

1 risposta

5

Il modo più semplice per decidere se la dipendenza (qualcosa di cui hai bisogno) appartiene al costruttore o all'elenco dei parametri del metodo è quando lo sai.

Se lo conosci prima di averne bisogno, considera la possibilità di creare un oggetto per conservarlo e utilizzare un costruttore per passarlo.

Se lo conosci quando devi usarlo, considera di passarlo direttamente al metodo che lo usa.

Se lo conosci solo dopo che l'oggetto è stato costruito ma prima di usarlo o devi ricordarlo dopo averlo usato, considera innanzitutto la creazione di un nuovo oggetto per tenerlo fino a quando non ne hai bisogno. Altrimenti, i setter potrebbero essere ciò di cui hai bisogno.

Questo approccio ti consente di essere il più possibile immutabile, il che facilita la comprensione del codice.

    
risposta data 30.07.2018 - 00:46
fonte

Leggi altre domande sui tag