孪生兄弟(Prototype)

 

某一天,当你发现有另外一个你存在的时候是高兴还是感到害怕?这也许违背目前人类的道德准则可是对于可以协作的对象来说如果有必要的时候需要动态的生成一个和自己一样的对象.那么无疑是一个好的发展方向.也许你听说了.是的.那就是在你无需知道具体如何复制的时候.只需要一个主动创建对象然后通过Prototype原型来达到你的目的.
在.NET中一切对象都派生自object类.也就是说从一开始就具备了MemberwiseClone方法.所以问题变的在简单不过了.
namespace PrototypeNS
{
    using System;
               interface  IPrototype
 {
  IPrototype CloneBody();
 }

 class MyPrototype : IPrototype
 {
   public IPrototype CloneBody()
  {
   return (IPrototype)MemberwiseClone();
  }
 }

 
 class Cloned
 {
  private IPrototype ip;

  public void SetPrototype(IPrototype otherP)
  {
   ip = otherP;   
  }

  public IPrototype Procedurce()
  {
   IPrototype XMan;
   XMan = ip.CloneBody();
                                                return XMan;
  }
 }

    public class Client
    {
        public static int Main(string[] args)
        {              
                                                MyPrototype cloneP; 
   Cloned c=new Cloned();
   MyPrototype myP = new MyPrototype();
   c.SetPrototype(myP);
   cloneP=c.Procedurce();

   return 0;
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值