In passato, in genere ho fatto la maggior parte della mia manipolazione di un oggetto all'interno del metodo principale che viene creato / aggiornato, ma ultimamente mi sono ritrovato ad adottare un approccio diverso e sono curioso di sapere se è una cattiva pratica.
Ecco un esempio Diciamo che ho un repository che accetta User
un'entità, ma prima di inserire l'entità, chiamiamo alcuni metodi per assicurarci che tutti i suoi campi siano impostati su ciò che vogliamo. Ora, piuttosto che chiamare metodi e impostare i valori di campo all'interno del metodo Inserisci, chiamo una serie di metodi di preparazione che modellano l'oggetto prima del suo inserimento.
Vecchio metodo:
public void InsertUser(User user) {
user.Username = GenerateUsername(user);
user.Password = GeneratePassword(user);
context.Users.Add(user);
}
Nuovi metodi:
public void InsertUser(User user) {
SetUsername(user);
SetPassword(user);
context.Users.Add(user);
}
private void SetUsername(User user) {
var username = "random business logic";
user.Username = username;
}
private void SetPassword(User user) {
var password = "more business logic";
user.Password = password;
}
Fondamentalmente, la pratica di impostare il valore di una proprietà da un altro metodo è una cattiva pratica?
user
sono stati passati per riferimento, il codice potrebbe tirare fuori delle mani del chiamante e sostituirlo semplicemente dicendo, per esempio, user = null;
.