En el pasado, normalmente he realizado la mayor parte de mi manipulación de un objeto dentro del método principal que se está creando / actualizando, pero últimamente me he encontrado con un enfoque diferente, y tengo curiosidad si es una mala práctica.
Aquí hay un ejemplo. Digamos que tengo un repositorio que acepta una Userentidad, pero antes de insertar la entidad, llamamos a algunos métodos para asegurarnos de que todos sus campos estén configurados para lo que queremos. Ahora, en lugar de llamar a métodos y establecer los valores de campo desde el método Insertar, llamo a una serie de métodos de preparación que dan forma al objeto antes de su inserción.
Método antiguo
public void InsertUser(User user) {
user.Username = GenerateUsername(user);
user.Password = GeneratePassword(user);
context.Users.Add(user);
}
Nuevos métodos
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;
}
Básicamente, ¿la práctica de establecer el valor de una propiedad desde otro método es una mala práctica?
userse pasa por referencia, el código podría dar un tirón hacia fuera de las manos de la persona que llama y reemplazarlo con sólo decir, por ejemplo, user = null;.