C#设计模式02——原型模式的写法

    public class ProteType
    { 
    
        private static ProteType _ProteType = new ProteType();
        private ProteType() { }
        public static ProteType GetInstance()
        {
            return (ProteType)_ProteType.MemberwiseClone();
        }
        
    }

运行测试

                var a1 = ProteType.GetInstance();
                var a2 = ProteType.GetInstance();
                Console.WriteLine($"a1 和 a2 是同一实例:{ object.ReferenceEquals(a1, a2)}");

 源码下载:https://gitee.com/weilong2020/csharp_23_-design-patterns.git 

 

什么是原型模式?

原型模式是一种创建型设计模式,它允许通过克隆来复制对象,而不是通过新建一个对象来创建相同类型的对象。原型模式的主要思想是使用现有对象作为原型,根据需要进行复制和修改。

为什么需要原型模式?

原型模式可以很好地解决创建和初始化对象时的复杂性和资源消耗问题。当需要创建的对象需要复杂的计算或者大量的操作时,使用原型模式可以提供更好的性能和更少的代码量。

原型模式有哪些应用场景?

原型模式主要应用在以下三种场景:

1. 当一个对象的创建和初始化需要消耗大量资源(如数据库操作、网络请求等)时,使用原型模式可以避免重复创建和初始化,从而节省资源和时间。

2. 当需要创建一系列相似的对象(如表单中的多个输入框)时,原型模式可以使用一个原型对象作为模板,通过克隆来创建新的对象。

3. 当需要避免继承层次的复杂性时,原型模式可以克隆一个已有的对象,然后进行修改,避免了创建子类和继承的复杂性。

原型模式有哪些优点?

1. 可以提高性能和减少资源消耗。

2. 可以减少重复的代码,提高代码的复用性。

3. 可以简化对象的创建和初始化过程,提高代码的可读性和可维护性。

原型模式有哪些缺点?

1. 由于对象的克隆需要消耗一定的资源,因此在需要大量创建对象时,会对内存和性能造成一定的影响。

2. 由于克隆出来的对象与原始对象有相同的引用,因此在修改克隆的对象时也会改变原始对象,需要特别注意。

posted @ 2021-02-06 15:52  明志德道  阅读(96)  评论(0编辑  收藏  举报