In passato, in genere ho fatto la maggior parte della mia manipolazione di un oggetto nel metodo principale che è stato creato / aggiornato, ma ultimamente ho scoperto un approccio diverso, e sono curioso di sapere se è un brutto pratica.
Ecco un esempio. Diciamo che ho un repository che accetta un'entità User
, ma prima di inserire l'entità, chiamiamo alcuni metodi per assicurarci che tutti i suoi campi siano impostati su ciò che vogliamo. Ora, anziché chiamare i metodi e impostare i valori del campo all'interno del metodo Insert, 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?