zoukankan      html  css  js  c++  java
  • 原型模式

    原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,而不需要知道任何创建细节

    一般在初始化的信息不发生改变的情况下克隆是最好的办法,这既隐藏了对象的创建细节,又对性能是大大的提高,就是不用重新初始化对象,而是动态的获得对象运行时的状态

    namespace 原型模式
    {
        class Program
        {
            static void Main(string[] args)
            {
                ConcretePrototype1 p1 = new ConcretePrototype1("I");
                ConcretePrototype1 c1 = (ConcretePrototype1)p1.Clone();
                Console.WriteLine("Cloned: {0}", c1.Id);
    
                ConcretePrototype2 p2 = new ConcretePrototype2("II");
                ConcretePrototype2 c2 = (ConcretePrototype2)p2.Clone();
                Console.WriteLine("Cloned: {0}", c2.Id);
    
                // Wait for user 
                Console.Read();
    
            }
        }
    
        abstract class Prototype
        {
            private string id;
    
            // Constructor 
            public Prototype(string id)
            {
                this.id = id;
            }
    
            // Property 
            public string Id
            {
                get { return id; }
            }
    
            public abstract Prototype Clone();
        }
    
        class ConcretePrototype1 : Prototype
        {
            // Constructor 
            public ConcretePrototype1(string id)
                : base(id)
            {
            }
    
            public override Prototype Clone()
            {
                // Shallow copy 
                return (Prototype)this.MemberwiseClone();
            }
        }
    
    
        class ConcretePrototype2 : Prototype
        {
            // Constructor 
            public ConcretePrototype2(string id)
                : base(id)
            {
            }
    
            public override Prototype Clone()
            {
                // Shallow copy 
                return (Prototype)this.MemberwiseClone();
            }
        }
    
    
    }
    

      

  • 相关阅读:
    LeetCode——二叉搜索树中的中序后继 II
    一加 2020.10.13 笔试
    携程 2020.10.13 笔试
    中科曙光 2020.10.12 面试
    58 2020.10.11 笔试
    华为 2020.10.11 面试
    LeetCode——二叉搜索树中的顺序后继
    健网未来 2020.10.10 面试
    波特率
    PGA基础知识极简教程(4)从FIFO设计讲起之异步FIFO篇
  • 原文地址:https://www.cnblogs.com/happygx/p/8392901.html
Copyright © 2011-2022 走看看