/*
* Created by sharpdevelop.
* User: Anson. Wu
* Date: 2007-4-5
* Time:
*
* To change this template use tools | options | coding | edit standard headers.
*/
Using System;
Namespace Clonepattern
{
Class Mainclass
{
Public Static Void Main ( String [] ARGs)
{
Conscreteprototype1 p1 = New Conscreteprototype1 ( " I " );
Conscreteprototype1 C1 = (Conscreteprototype1) p1.clone ();
Console. writeline (c1.id );
Conscreteprototype2 p2 = New Conscreteprototype2 ( " II " );
Conscreteprototype2 C2 = (Conscreteprototype2) p2.clone ();
Console. writeline (c2.id );
Console. Read ();
}
}
Public Abstract Class Prototype
{
Private String _ Id;
Public String ID
{
Get { Return _ Id ;}
Set {_ Id = Value ;}
}
Public Prototype ( String ID)
{
_ Id = ID;
}
Public Abstract Prototype clone ();
}
Public Class Conscreteprototype1: Prototype
{
Public Conscreteprototype1 ( String ID ): Base (ID)
{
}
Public Override Prototype clone ()
{
Return (Prototype) This . Memberwiseclone ();
}
}
Public Class Conscreteprototype2: Prototype
{
Public Conscreteprototype2 ( String ID ): Base (ID)
{
}
Public Override Prototype clone ()
{
Return (Prototype) This . memberwiseclone ();
}< BR >}