Geçmişte, genellikle bir nesneyi oluşturduğum / güncellediğim birincil yöntemdeki manipülasyonumun çoğunu yaptım, ancak son zamanlarda kendimi farklı bir yaklaşımla buldum ve bunun kötü bir uygulama olup olmadığını merak ediyorum.
İşte bir örnek. Diyelim ki bir User
varlığı kabul eden bir havuzum var, ancak varlığı eklemeden önce, tüm alanlarının istediğimiz şeye ayarlandığından emin olmak için bazı yöntemler çağırıyoruz. Şimdi, yöntemleri çağırmak ve Ekle yönteminin içinden alan değerlerini ayarlamak yerine, eklemeden önce nesneyi şekillendiren bir dizi hazırlama yöntemini çağırıyorum.
Eski Yöntem:
public void InsertUser(User user) {
user.Username = GenerateUsername(user);
user.Password = GeneratePassword(user);
context.Users.Add(user);
}
Yeni Yöntemler:
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;
}
Temel olarak, bir mülkün değerini başka bir yöntemden belirleme uygulaması kötü bir uygulama mıdır?
user
referans olarak geçirildi, kod, arayanın elinden hızla çekmek ve basitçe diyelim diyerek yerini alabilir user = null;
.