В прошлом я обычно делал большую часть своих манипуляций с объектом в основном методе, которым он создается / обновлялся, но в последнее время я нашел другой подход, и мне любопытно, если это плохая практика.
Вот пример. Допустим, у меня есть репозиторий, который принимает User
сущность, но перед вставкой сущности мы вызываем некоторые методы, чтобы убедиться, что все ее поля установлены так, как нам нужно. Теперь вместо того, чтобы вызывать методы и устанавливать значения полей из метода Insert, я вызываю серию методов подготовки, которые формируют объект до его вставки.
Старый метод:
public void InsertUser(User user) {
user.Username = GenerateUsername(user);
user.Password = GeneratePassword(user);
context.Users.Add(user);
}
Новые методы:
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;
}
В принципе, является ли практика установки значения свойства из другого метода плохой практикой?
user
были переданы по ссылке, код может дергать его из рук вызывающих и заменить его, просто говоря, скажем, user = null;
.