设计模式 之 原型设计模式

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

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

(二) 原型模式代码

原型类

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

}

(三)浅赋值和深复制

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

   

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

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


   

原文地址:https://www.cnblogs.com/misscai/p/9946120.html