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();
            }
        }
    
    
    }
    

      

  • 相关阅读:
    堆和栈的区别 (转贴)
    Linux常用的网络命令
    H.264的编解码流程
    链表逆序
    快速排序
    一个计算机硕士毕业生的求职经验(五)
    H.264简单总结
    重要的热键 【Tab】,【Ctrl】—C,【Ctrl】—D
    Linux 文件与目录管理
    一个计算机硕士毕业生的求职经验(六)
  • 原文地址:https://www.cnblogs.com/happygx/p/8392901.html
Copyright © 2011-2022 走看看