原型模式
1.利用对象拷贝,快速获取对象
学生原型:
public class StudentPrototype
{
public int Id { get; set; }
public string Name { get; set; }
public Class Class { get; set; }
private StudentPrototype()
{
}
private static StudentPrototype _studentPrototype = new StudentPrototype()
{
Id = 0,
Name = "",
Class = new Class()
{
Id = 0, Name = ""
}
};
public static StudentPrototype GetStudentPrototype()
{
return (StudentPrototype) _studentPrototype.MemberwiseClone();
}
}
班级类:
public class Class
{
public int Id { get; set; }
public string Name { get; set; }
}
代码调用:
class Program
{
static void Main(string[] args)
{
StudentPrototype student1 = StudentPrototype.GetStudentPrototype();
student1.Id = 11;
student1.Name = "张三";
student1.Class = new Class()
{
Id = 111,
Name = "3年1班",
};
Console.WriteLine($"Student Id is {student1.Id },Student Name is {student1.Name},Class Id is {student1.Class.Id},Class Name is {student1.Class.Name}");
StudentPrototype student2 = StudentPrototype.GetStudentPrototype();
student2.Id = 22;
student2.Name = "李四";
student2.Class = new Class()
{
Id = 222,
Name = "3年3班",
};
Console.WriteLine($"Student Id is {student2.Id },Student Name is {student2.Name} Class Id is {student2.Class.Id},Class Name is {student2.Class.Name}");
}
}
