У меня есть вопрос относительно шаблона прототипа.Понимание шаблона прототипа
Я прочитал, что Prototype Pattern эффективен, поскольку он копирует объект вместо создания нового, что считается дорогостоящей операцией.
Итак, основываясь на этом, я попробовал образец и вижу различные результаты. Я правильно проверяю его Или я пропустил что-нибудь?
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;
}
}
И результаты приведены ниже: первый запуск: - Новое: 18 Клон: 26
второй Run: - Новое: 34 Клон: 30
третий Пробег: - Новое: 20 Клон: 33
Цените, если вы можете помочь мне в понимании этого шаблона. И что еще нужно сделать для создания нового объекта, чего не происходит при клонировании?
Вы знаете разницу между «эффективными» и «эффективными»? Узнайте, что прочитанная вами статья означает «эффективный». Всякий раз, когда вы говорите «я читаю», расскажите нам, где вы его читаете. Тогда кто-то может проверить, вы просто неправильно поняли, или статья была написана невежественным блоггером, или она исходит из надежного источника. – gnasher729
Я думаю, что в целом шаблоны Prototype работают лучше, поскольку не создают объекты. В моем примере это не так. Я на правильном пути? Или есть что-нибудь, что вы можете предложить ?. А также любой пример кода, в котором я могу увидеть преимущества, будет полезен. Я прочитал так много статей, и я не уверен, могу ли я найти эту статью в частности. Но все же я чувствую вопрос в ответном состоянии :) –