设计模式--原型模式

2023-06-20 09:48:25 浏览数 (1)

原型模式是一种创建型设计模式,它允许通过克隆现有对象来创建新对象,而无需从头开始创建。通过复制已有对象,原型模式可以减少创建对象所需的时间和成本,因为它避免了大量的初始化过程。

在原型模式中,可以使用简单的克隆或深度克隆。简单的克隆只复制私有字段和属性,而深度克隆还将复制所有关联对象。选择哪种克隆方法取决于对程序使用方式的要求。

下面是使用C#编写的一个原型模式实例:

代码语言:javascript复制
using System;

public class Person : ICloneable
{
    public string Name { get; set; }
    public int Age { get; set; }

    public object Clone()
    {
        return this.MemberwiseClone();
    }

    public override string ToString()
    {
        return $"{Name}, {Age}";
    }
}

public class Program
{
    public static void Main()
    {
        var person1 = new Person { Name = "John", Age = 30 };
        var person2 = (Person)person1.Clone();

        Console.WriteLine(person1); // Output: John, 30
        Console.WriteLine(person2); // Output: John, 30

        person2.Age = 31;

        Console.WriteLine(person1); // Output: John, 30
        Console.WriteLine(person2); // Output: John, 31
    }
}

以上代码运行结果如下:

原型模式原型模式

在这个例子中,Person类实现ICloneable接口并定义Clone方法,通过MemberwiseClone方法来创建对象的浅拷贝。两个Person对象person1和person2初始属性相同,但通过修改person2的Age属性来改变其值,person1的属性没有改变。通过这种方式,原型模式提供了一种创建对象的灵活和高效的方式。

0 人点赞