Jestem ciekawa, czy ktoś ma jakieś sugestie lub alternatywne wzorce do budowania niestandardowego obiektu z danymi z innego obiektu.Budowanie obiektu - metoda statycznego konstruktora a klasa konstruktora a metoda rozszerzenia
Obecnie badamy trzy podejścia.
1) Static Budowanie Metoda
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) Konstruktor klasy
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) metodę rozszerzenia
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"]);
}
}
Jedną z głównych kwestii jest to, do której zbliżamy się, że musimy dodać do klasy odniesienie using
z System.Data
. W tym momencie nie chcemy dodawać tej zależności bezpośrednio do naszej klasy MyObject
.
Czy ktoś może zaoferować korzyści lub wady jakimkolwiek z tych podejść lub może zaoferować rozwiązania alternatywne, które w większym stopniu umożliwią rozszerzalność i testowalność?