ฉันกำลังทำงานกับแอพ ASP.NET MVC และฉันเริ่มติดนิสัยในการวางสิ่งที่ดูเหมือนว่า getters ที่เป็นประโยชน์และสะดวกในคลาส / โมเดลเอนทิตีของฉัน
ตัวอย่างเช่น:
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); }
}
}
ฉันสงสัยว่าคนที่คิดเกี่ยวกับFullName
และFormattedPhoneNumber
getters
พวกเขาทำให้ง่ายต่อการสร้างรูปแบบข้อมูลที่เป็นมาตรฐานทั่วทั้งแอพและดูเหมือนว่าจะบันทึกรหัสซ้ำจำนวนมาก แต่อาจเป็นที่ถกเถียงกันอยู่ว่ารูปแบบข้อมูลนั้นเป็นสิ่งที่ควรจัดการในการทำแผนที่จากแบบจำลองไปยังแบบจำลอง
ที่จริงแล้วฉันเดิมใช้รูปแบบข้อมูลเหล่านี้ในชั้นบริการของฉันที่ฉันทำแผนที่ของฉัน แต่มันก็กลายเป็นภาระที่ต้องเขียน formatters อย่างต่อเนื่องแล้วนำไปใช้ในหลาย ๆ ที่ เช่นฉันใช้ "ชื่อเต็ม" ในมุมมองส่วนใหญ่และต้องพิมพ์บางสิ่งบางอย่างเหมือนmodel.FullName = MappingUtilities.GetFullName(entity.FirstName, entity.LastName);
ทั่วสถานที่ดูเหมือนจะดูสง่างามกว่าการพิมพ์เพียงเล็กน้อยmodel.FullName = entity.FullName
(หรือถ้าคุณใช้บางอย่างเช่น AutoMapper อาจไม่พิมพ์อะไรเลย)
ดังนั้นคุณจะวาดเส้นที่ไหนเมื่อมันมาถึงการจัดรูปแบบข้อมูล "โอเค" ในการจัดรูปแบบข้อมูลในโมเดลของคุณหรือเป็น "กลิ่นของรูปแบบ" หรือไม่?
หมายเหตุ: ฉันไม่มี html ใด ๆ ในแบบจำลองของฉัน ฉันใช้ตัวช่วย html เพื่อสิ่งนั้น ฉันกำลังพูดถึงการจัดรูปแบบหรือการรวมข้อมูลอย่างเคร่งครัด (และโดยเฉพาะอย่างยิ่งข้อมูลที่ใช้บ่อย)
PhoneNumber
อาจเป็นของชั้นเรียนของตัวเอง (ซึ่งตอนนี้ฉันได้นำไปใช้แล้ว) แต่FullName
เป็นคนที่กระตุ้นให้ฉันเขียนคำถาม แต่ฉันสนใจที่จะทราบว่าโดยทั่วไปแล้วมันสมเหตุสมผลที่จะนำการจัดรูปแบบ / การจัดเรียงข้อมูล ฯลฯ ในโมเดลสำหรับสิ่งต่าง ๆ ที่จะใช้กับแอป จากคำตอบด้านล่างดูเหมือนว่านี่ไม่ใช่รูปแบบต่อต้าน แต่ควรตัดสินใจอย่างรอบคอบ