У минулому я зазвичай робив більшу частину маніпуляцій з об'єктом в рамках основного методу, який він створюється / оновлюється, але останнім часом я виявив себе іншим підходом, і мені цікаво, чи це погана практика.
Ось приклад. Скажімо, у мене є сховище, яке приймає 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;
.