Di masa lalu, saya biasanya melakukan sebagian besar manipulasi objek pada metode utama yang sedang dibuat / dimutakhirkan, tetapi saya mendapati diri saya mengambil pendekatan yang berbeda akhir-akhir ini, dan saya ingin tahu apakah ini merupakan praktik yang buruk.
Ini sebuah contoh. Katakanlah saya memiliki repositori yang menerima User
entitas, tetapi sebelum memasukkan entitas, kami memanggil beberapa metode untuk memastikan semua bidangnya disetel ke apa yang kami inginkan. Sekarang, daripada memanggil metode dan menetapkan nilai bidang dari dalam metode Sisipkan, saya memanggil serangkaian metode persiapan yang membentuk objek sebelum penyisipannya.
Metode lama:
public void InsertUser(User user) {
user.Username = GenerateUsername(user);
user.Password = GeneratePassword(user);
context.Users.Add(user);
}
Metode Baru:
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;
}
Pada dasarnya, apakah praktik menetapkan nilai properti dari metode lain merupakan praktik buruk?
user
dilewatkan dengan referensi, kode dapat menariknya keluar dari tangan penelepon dan menggantinya dengan hanya mengatakan, katakan user = null;
,.