原型模式

原型模式

一、定义

原型模式是一种创建对象实例的设计模式,它通过复制一个现有对象来创建新的对象实例,而无需重新构建所有内容。

二、例子

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.缺点

      每个类必须配备一个克隆方法。
   配备克隆方法需要对类的功能进行通盘考虑。

posted on 2023-05-24 11:33  一只向上爬的小蜗牛  阅读(33)  评论(0编辑  收藏  举报