나는 프로토 타입 패턴에 관한 질문이 있습니다. 이해 프로토 타입 패턴
난 원형 패턴을 복사 대상이 아니라 비용이 많이 드는 작업으로 간주되는 새로운 하나를 생성 효과적이라고 읽는다. 이 그래서를 기반으로 내가 샘플을 시도하고 나는 다양한 결과를 참조하십시오. 올바른 방법으로 확인하고 있습니까? 아니면 놓친 것이 있습니까?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;
}
}
그리고 그 결과는 다음과 같습니다 : 1 차 경기 - 새로운 기능 : 18 복제 : 26
2 차 경기 - 새로운 기능 : 34 복제 : 30
3 실행 : - 신규 : 20 클론 : 33
이 패턴을 이해하는 데 도움을 주시면 감사하겠습니다. 또한 여분의 것, 그것은 복제하지 일어난다 않는 새로운 객체를 생성하는 데 걸리는 무엇입니까?
당신은 "효과"와 "효율"의 차이를 알아? 읽은 기사가 의미하는 바를 "효과적인"것으로 파악하십시오. "내가 읽었습니다"라고 말할 때마다 읽은 곳을 말해주십시오. 그렇다면 누군가가 당신이 오해했는지 여부를 확인할 수 있습니다. 또는 기사가 우둔한 블로거에 의해 작성되었는지 또는 신뢰할 수있는 출처에서 왔는지 여부를 확인할 수 있습니다. – gnasher729
일반적으로 프로토 타입 패턴은 객체를 생성하지 않으므로 더 잘 작동한다고 생각합니다. 제 예제에서는 그렇지 않습니다. 나는 올바른 길을 가고 있는가? 아니면 당신이 제안 할 수있는 것이 있습니까? 또한 장점을 볼 수있는 샘플 코드도 도움이 될 것입니다. 많은 기사를 읽었으며 특히 해당 기사를 찾을 수 있는지 확실하지 않습니다. 그러나 아직도 나는 대답 할 수있는 질문을 느낀다 : –