孿生兄弟(Prototype) (轉)

amyz發表於2007-11-16
孿生兄弟(Prototype) (轉)[@more@]

 

某一天,當你發現有另外一個你存在的時候是高興還是感到害怕?這也許違背目前人類的道德準則可是對於可以協作的來說如果有必要的時候需要動態的生成一個和自己一樣的物件.那麼無疑是一個好的發展方向.也許你聽說了.是的.那就是在你無需知道具體如何複製的時候.只需要一個主動建立物件然後透過原型來達到你的目的.
在中一切物件都派生自類.也就是說從一開始就具備了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)
 {
 = 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;
  }
  }
}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-982808/,如需轉載,請註明出處,否則將追究法律責任。

相關文章