原型模式
原型模式
一、定义
原型模式是一种创建对象实例的设计模式,它通过复制一个现有对象来创建新的对象实例,而无需重新构建所有内容。
二、例子
1.Person.cs
//实现 ICloneable 接口 public class Person : ICloneable { public string Name; public int Age; public string Gender; //定义克隆方法 public object Clone() { return MemberwiseClone(); } }
2.Program.cs
public class Program { static void Main(string[] args) { //创建一个原型实例 var person1 = new Person { Name = "Tom", Age = 20, Gender = "男" }; //基于原型创建新的对象实例,并修改其属性 var person2 = (Person)person1.Clone(); person2.Name = "Jerry"; person2.Age = 18; Console.WriteLine($"Person1, Name = {person1.Name}, Age = {person1.Age}, Gender={person1.Gender}"); Console.WriteLine($"Person2, Name = {person2.Name}, Age = {person2.Age}, Gender={person2.Gender}"); } }
3.运行结果
三、优缺点
1.优点
提高性能:使用原型模式可以避免大量资源和时间用于创建对象实例,因为它避免了重新构建所有内容。
简化代码:与其他创建对象实例的方法相比,原型模式可以使代码更加简洁,因为它不需要编写很多重复的代码来创建新的对象实例。
更灵活:使用原型模式在运行时克隆对象可以更灵活地配置应用程序,而不需要使用编译时创建对象实例。
2.缺点
每个类必须配备一个克隆方法。
配备克隆方法需要对类的功能进行通盘考虑。