Ich bin gespannt, ob jemand Vorschläge oder alternative Muster zum Erstellen eines benutzerdefinierten Objekts mit Daten von einem anderen Objekt hat.Erstellen eines Objekts - statische Builder-Methode vs. Builder-Klasse vs. Erweiterungsmethode
Wir untersuchen derzeit drei Ansätze.
1) statische Aufladung Method
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 Klasse
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) Erweiterungsmethode
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"]);
}
}
Ein Hauptüberlegungspunkt ist, dass wir bei jedem Ansatz, den wir verfolgen, eine using
Referenz von System.Data
hinzufügen müssen. An dieser Stelle zögern wir, diese Abhängigkeit direkt zu unserer Klasse MyObject
hinzuzufügen.
Kann irgendjemand irgendeinen dieser Vor- oder Nachteile anbieten oder Alternativen anbieten, die Erweiterbarkeit und Testbarkeit besser ermöglichen?