मुझे यह जानकर उत्सुकता है कि किसी अन्य ऑब्जेक्ट से डेटा के साथ कस्टम ऑब्जेक्ट बनाने के लिए किसी के पास कोई सुझाव या वैकल्पिक पैटर्न है या नहीं।ऑब्जेक्ट बनाना - स्थिर बिल्डर विधि बनाम बिल्डर क्लास बनाम एक्सटेंशन विधि
हम वर्तमान में तीन दृष्टिकोण खोज रहे हैं।
1) स्टेटिक बिल्ड विधि
public class MyObject
{
public int Id { get; set; }
public string Name { get; set; }
public static MyObject Build(DataRow data)
{
MyObject newObject = new MyObject();
newObject.Id = Convert.ToInt32(data["ID"]);
newObject.Name = Convert.ToString(data["NAME"]);
return newOjbect;
}
}
2) बिल्डर कक्षा
public class MyObject
{
public int Id { get; set; }
public string Name { get; set; }
}
public class MyObjectBuilder
{
public static MyObject Build(DataRow data)
{
MyObject newObject = new MyObject();
newObject.Id = Convert.ToInt32(data["ID"]);
newObject.Name = Convert.ToString(data["NAME"]);
return newOjbect;
}
}
3) विस्तार विधि
public class MyObject
{
public int Id { get; set; }
public string Name { get; set; }
}
public static class MyObjectExtensions
{
public static void Build(this MyObject obj, DataRow data)
{
obj.Id = Convert.ToInt32(data["ID"]);
obj.Name = Convert.ToString(data["NAME"]);
}
}
एक मुख्य विचार यह है कि हम जिस भी दृष्टिकोण के साथ जाते हैं, हमें using
कक्षा में System.Data
का संदर्भ जोड़ने की आवश्यकता है। इस बिंदु पर हम इस निर्भरता को सीधे हमारे MyObject
कक्षा में जोड़ने में संकोच कर रहे हैं।
क्या कोई इन दृष्टिकोणों में से किसी के लिए फायदे या नुकसान प्रदान कर सकता है या शायद ऐसे विकल्प प्रदान कर सकता है जो एक्स्टेंसिबिलिटी और टेस्टेबिलिटी को बेहतर ढंग से सक्षम कर सकें?