Sto cercando di iniziare ad aggiungere alcuni test al mio codice. Per favore, rilassati perché sono ancora nuovo in questo campo.
Per quanto comprendo l'inversione di dipendenza, tutte le dipendenze saranno collocate all'interno di un costruttore di classi e devono essere un'interfaccia in modo che possiamo facilmente falsificarlo. Seguendo questa regola potrei finire con una classe di login come questa.
public class Login
{
string _username;
string _password;
IUserRepository _userRepository;
public Login(string username, string password, IUserRepository userRepository)
{
this._username=username;
this._password=password;
this._userRepository=userRepository;
}
}
public interface IUserRepository
{
}
Questo è contrario a come capisco che le classi saranno. Credo che gli utenti del tuo codice non debbano sapere nulla del suo funzionamento interno. Tutto quello che devono sapere è come istanziare e usare l'oggetto. In breve, fornisci loro un modo per arrivarci, ma nascondi i dettagli. Quindi, per riassumere, avere il repository IUser all'interno di un costruttore ha reso il mio codice più confuso per alcuni utenti della mia classe. Per favore illuminami su questo in modo da non commettere altri errori lungo la strada.
Saluti,