学习的点点滴滴

Email : 107311278@qq.com
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

原型模式

Posted on 2014-01-16 23:28  v薛定谔的猫v  阅读(103)  评论(0)    收藏  举报

说明:目标类克隆原型中的数据,然后加以改造利用构造自己可以利用的数据。目标类通过克隆一个或多个原型类来构造,

         然后再修改或者是填充克隆出来的类的细节以使得其行为符合预先期望。 原型模式一般设计对父类数据的克隆问题。

类图

代码

  

public class BaseModel
{

  public virtual int ID
  {
    get;
    set;
  }

  public virtual string Name
  {
    get;
    set;
  }

  public BaseModel(int Id, string name)
  {
    ID = Id;
    Name = name;
  }

}

public interface ICloneable
{
  object Clone();

}

public class ShallowCopy : ICloneable
{
  public virtual BaseModel BaseModel
  {
    get;
    set;
  }

  public virtual object Clone()
  {
    return this.MemberwiseClone();
  }

}

public class DeepCopy : ICloneable
{

  public DeepCopy(BaseModel mm)
  {
    BaseModel= mm;
  }

  public virtual BaseModel BaseModel
  {
    get;
    set;
  }

  public virtual object Clone()
  {
    return new DeepCopy(new BaseModel(BaseModel.ID, BaseModel.Name));
  }

}