Ich habe eine Frage zu Prototype Pattern.Understanding Prototype Pattern
Ich lese, dass Prototyp Muster wirksam ist, wie es das Objekt kopiert, anstatt eine neue zu erstellen, die als eine teure Operation betrachtet wird.
Also basierend auf diesem habe ich eine Probe versucht und ich sehe abwechslungsreiche Ergebnisse. überprüfe ich es auf die richtige Weise Oder habe ich etwas verpasst?
static void Main(string[] args)
{
var sw = new Stopwatch();
sw.Start();
Employee e;
for (var i = 0; i < 100000; i++)
{
e = new Employee(5, "sandesh", 27, "Bengaluru");
e.Print();
}
sw.Stop();
Console.WriteLine("New : " + sw.ElapsedMilliseconds);
sw.Reset();
sw.Start();
e = new Employee(5, "sandesh", 27, "Bengaluru");
for (var i = 0; i < 100000; i++)
{
var en = e.Clone();
en.Print();
}
sw.Stop();
Console.WriteLine("Clone : " + sw.ElapsedMilliseconds);
Console.ReadLine();
}
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string Place { get; set; }
public Employee(int id, string name, int age, string place)
{
Id = id;
Name = name;
Age = age;
Place = place;
}
public Employee Clone()
{
return (Employee)this.MemberwiseClone();
}
public void Print()
{
var sum = Id * Age;
var full = sum + Name + Place;
}
}
Und die Ergebnisse sind unten: 1. Run: - Neu: 18 Klon: 26
2. Run: - Neu: 34 Klon: 30
3. Run: - Neu: 20 Klon: 33
Schätzen Sie, wenn Sie mir helfen können, dieses Muster zu verstehen. Auch was braucht es, um ein neues Objekt zu erstellen, was beim Klonen nicht passiert?
Sie kennen den Unterschied zwischen "effektiv" und "effizient"? Finden Sie heraus, was der Artikel, den Sie lesen, bedeutet "effektiv". Wann immer Sie "Ich lese" sagen, sagen Sie uns, wo Sie es lesen. Dann kann jemand überprüfen, ob Sie gerade falsch verstanden haben, oder der Artikel wurde von einem ahnungslosen Blogger geschrieben, oder ob es aus einer zuverlässigen Quelle stammt. – gnasher729
Ich denke im Allgemeinen Prototyp Muster funktioniert besser, da es keine Objekte erstellt. Was in meinem Beispiel nicht der Fall ist. Bin ich auf dem richtigen Weg? Oder gibt es etwas, was Sie vorschlagen können ?. Und auch jeder Beispielcode, bei dem ich die Vorteile sehen kann, wird hilfreich sein. Ich habe so viele Artikel gelesen und bin mir nicht sicher, ob ich diesen Artikel besonders finden kann. Aber immer noch fühle ich die Frage in beantwortbar :) –