আমি একটি এএসপি.এনইটি এমভিসি অ্যাপে কাজ করছি এবং আমি আমার মডেল / সত্তা ক্লাসগুলিতে সহায়ক এবং সুবিধাজনক উপার্জনকারীদের মতো লাগার অভ্যাসে চলে আসছি।
উদাহরণ স্বরূপ:
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আগতদের সম্পর্কে চিন্তা করে ।
তারা অ্যাপ্লিকেশন জুড়ে মানসম্মত ডেটা ফর্ম্যাটগুলি তৈরি করা খুব সহজ করে তোলে এবং তারা প্রচুর পুনরাবৃত্তি কোড সংরক্ষণ করে বলে মনে হয় তবে এটি অবশ্যই যুক্তিযুক্ত হতে পারে যে ডেটা ফর্ম্যাট এমন একটি জিনিস যা মডেল থেকে ভিউ-মডেলকে ম্যাপিংয়ে পরিচালনা করা উচিত।
প্রকৃতপক্ষে, আমি মূলত এই পরিষেবা ফর্ম্যাটগুলিকে আমার পরিষেবা স্তরে প্রয়োগ করছি যেখানে আমি আমার ম্যাপিং করি তবে এটি নিয়মিতভাবে ফরম্যাটারগুলি লিখতে হবে এবং সেগুলি বিভিন্ন স্থানে প্রয়োগ করার জন্য বোঝা হয়ে উঠছিল। উদাহরণস্বরূপ, আমি বেশিরভাগ দর্শনগুলিতে "পুরো নাম" ব্যবহার করি এবং model.FullName = MappingUtilities.GetFullName(entity.FirstName, entity.LastName);পুরো জায়গার মতো কিছু টাইপ করা কেবল টাইপিংয়ের চেয়ে অনেক কম মার্জিত বলে মনে হয় model.FullName = entity.FullName(বা, যদি আপনি অটোম্যাপারের মতো কিছু ব্যবহার করেন, সম্ভাব্যত কোনও কিছুই টাইপ না করেন)।
সুতরাং, ডাটা ফর্ম্যাটিংয়ের ক্ষেত্রে আপনি লাইনটি কোথায় আঁকেন। আপনার মডেলটিতে ডেটা ফর্ম্যাটিং করা কি "ঠিক আছে" বা এটি "প্যাটার্নের গন্ধ"?
দ্রষ্টব্য: আমার মডেলটিতে আমার অবশ্যই কোনও এইচটিএমএল নেই। আমি তার জন্য এইচটিএমএল সহায়ক ব্যবহার করি। আমি কঠোরভাবে ডেটা ফর্ম্যাট করা বা একত্রিত করার বিষয়ে কথা বলছি (এবং বিশেষত ডেটা যা প্রায়শই ব্যবহৃত হয়)।
PhoneNumberসম্ভবত এটি নিজস্ব শ্রেণিতে অন্তর্ভুক্ত (যা আমি এখন বাস্তবায়ন করেছি)। তবে FullNameআসলেই কি আমাকে প্রশ্ন লিখতে উদ্বুদ্ধ করেছিল। তবে আমি সাধারণভাবে ডেটা ফর্ম্যাটিং / কম্বিং ইত্যাদির জন্য মডেলটিতে অ্যাপ্লিকেশন প্রয়োগ করতে সক্ষম হবে কি না তা খুঁজে পেতে আগ্রহী। নীচের উত্তরগুলি থেকে দেখে মনে হচ্ছে এটি কোনও বিরোধী-নিদর্শন নয়, তবে সিদ্ধান্তটি সাবধানতার সাথে নেওয়া উচিত।