Saya sedang mengerjakan aplikasi ASP.NET MVC, dan saya sudah terbiasa membiasakan apa yang kelihatannya membantu dan nyaman digunakan dalam kelas model / entitas saya.
Sebagai contoh:
public class Member
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string PhoneNumber { get; set; }
public string FullName
{
get { return FirstName + " " + LastName; }
}
public string FormattedPhoneNumber
{
get { return "(" + PhoneNumber.Substring(0, 3) + ") " + PhoneNumber.Substring(3, 3) + "-" + PhoneNumber.Substring(6); }
}
}
Saya bertanya-tanya orang-orang memikirkan FullName
dan mendapatkan FormattedPhoneNumber
.
Mereka membuatnya sangat mudah untuk membuat format data standar di seluruh aplikasi, dan mereka tampaknya menyimpan banyak kode berulang, tetapi dapat dipastikan bahwa format data adalah sesuatu yang harus ditangani dalam pemetaan dari model ke model-tampilan.
Sebenarnya, saya awalnya menerapkan format data ini di lapisan layanan saya di mana saya melakukan pemetaan, tetapi itu menjadi beban untuk terus-menerus harus menulis formatters kemudian menerapkannya di banyak tempat berbeda. Misalnya, saya menggunakan "Nama Lengkap" di sebagian besar tampilan, dan harus mengetikkan sesuatu seperti di model.FullName = MappingUtilities.GetFullName(entity.FirstName, entity.LastName);
semua tempat tampak jauh lebih elegan daripada hanya mengetik model.FullName = entity.FullName
(atau, jika Anda menggunakan sesuatu seperti AutoMapper, berpotensi tidak mengetik apa pun).
Jadi, di mana Anda menggambar garis ketika datang ke pemformatan data. Apakah "boleh" melakukan pemformatan data dalam model Anda atau apakah itu "pola bau"?
Catatan: Saya jelas tidak memiliki html dalam model saya. Saya menggunakan pembantu html untuk itu. Saya benar-benar berbicara tentang memformat atau menggabungkan data (dan terutama data yang sering digunakan).
PhoneNumber
mungkin termasuk dalam kelasnya sendiri (yang sekarang telah saya implementasikan). Tetapi FullName
sebenarnya adalah hal yang memotivasi saya untuk menulis pertanyaan. Tapi saya tertarik untuk mencari tahu apakah, secara umum, masuk akal untuk meletakkan pemformatan data / menyisir, dll dalam model untuk hal-hal yang akan berlaku di seluruh aplikasi. Dari jawaban di bawah, sepertinya ini bukan anti-pola, tetapi keputusan harus dibuat dengan hati-hati.