Tôi tò mò muốn biết liệu có ai có đề xuất hoặc mẫu thay thế để xây dựng đối tượng tùy chỉnh với dữ liệu từ một đối tượng khác hay không.Xây dựng một phương thức xây dựng đối tượng tĩnh so với phương thức mở rộng
Hiện tại, chúng tôi đang khám phá ba phương pháp.
1) Static Xây dựng Phương pháp
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) Builder Lớp
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) Phương pháp mở rộng
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"]);
}
}
Một trong những cân nhắc chính là chúng ta sẽ tiếp cận với chúng ta bằng cách nào cần thêm một tham chiếu using
của System.Data
vào lớp học. Tại thời điểm này, chúng tôi đang do dự để thêm phụ thuộc này trực tiếp vào lớp MyObject
của chúng tôi.
Có ai có thể đưa ra ưu điểm hay nhược điểm cho bất kỳ phương pháp nào trong số này hoặc có thể cung cấp các giải pháp thay thế cho phép khả năng mở rộng và khả năng thử nghiệm tốt hơn?