• 设计模式 之 原型设计模式


    (一)原型设计模式 结构图

       原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节.

    (二) 原型模式代码

    原型类

    abstract class Prototype{
        private String id;
        
        public Prototype(String id){
               thid.id = id;       
        }
        public String Id{
               get{ retrun id;}    
        }  
        public abstract Prototype Clone();
    }

    具体原型类

    class ConcretePrototype1 : Prototype{
      public ConcretePrototype1(String id) : base(id){
      }
      
      public override Prototype Clone(){
        return (Prototype)this.MemberwiseClone();
      } 
    }

    客户端代码

    static void Main(String[] args){
    
      ConcretePrototype1 p1 = new  ConcretePrototype1("I");
    
      ConcretePrototype1 c1 = (ConcretePrototype1)p1.Clone();
    
      Console.WriteLine("Cloned:{0}",c1.Id);
    
      Console.Read();
    
    }

    (三)浅赋值和深复制

      如果字段是值类型的,则对该字段执行逐位复制,如果字段是引用类型,则复制引用但不复制引用的对象.

       

      浅复制: 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍然指向原来的对象.

      深复制: 深复制把引用对象的变量指向复制过的新对象,而不是原有的被引用的对象.


       

  • 相关阅读:
    关于http头
    关于js中的命名
    PHP之APC缓存详细介绍
    找回Windows Vista桌面的IE7.0图标
    查看操作系统是不是中文正式版?
    如何判断XP是否已激活
    Vista取消默认共享
    今天是儿童节,祝福儿子节日快乐!
    天天锻炼身体好!
    如何查看你的XP SP2是否原版?
  • 原文地址:https://www.cnblogs.com/misscai/p/9946120.html
Copyright © 2020-2023  润新知