.NET开发

本类阅读TOP10

·NHibernate快速指南(翻译)
·vs.net 2005中文版下载地址收藏
·【小技巧】一个判断session是否过期的小技巧
·VB/ASP 调用 SQL Server 的存储过程
·?dos下编译.net程序找不到csc.exe文件
·通过Web Services上传和下载文件
·学习笔记(补)《.NET框架程序设计(修订版)》--目录
·VB.NET实现DirectDraw9 (2) 动画
·VB.NET实现DirectDraw9 (1) 托管的DDraw
·建站框架规范书之——文件命名

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
孪生兄弟(Prototype)

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

 

某一天,当你发现有另外一个你存在的时候是高兴还是感到害怕?这也许违背目前人类的道德准则可是对于可以协作的对象来说如果有必要的时候需要动态的生成一个和自己一样的对象.那么无疑是一个好的发展方向.也许你听说了.是的.那就是在你无需知道具体如何复制的时候.只需要一个主动创建对象然后通过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;
        }
    }
}




相关文章

相关软件