主讲:李建忠
来源:http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/consyscourse/CsharpOOD.aspx
Prototypepublic abstract class NormalActor { public abstract NormalActor Clone(); } public abstract class FlyActor { public abstract FlyActor Clone(); } public abstract class WaterActor { public abstract WaterActor Clone(); }
ConcretePrototypepublic class NormalActorA:NormalActor { public override NormalActor Clone() { ... } } public class NormalActorB:NormalActor { } public class FlyActorA:FlyActor { } public class FlyActorB:FlyActor { } public class WaterActorA:WaterActor { } public class WaterActorB:WaterActor { }
Clientpublic class GameSystem { public static void Run(NormalActor normalActor, FlyActor flyActor, WaterActor waterActor) { NormalActor normalActor1=normalActor.Clone(); NormalActor normalActor2=normalActor.Clone(); NormalActor normalActor3=normalActor.Clone(); FlyActor flyActor1=flyActor.Clone(); FlyActor flyActor2=flyActor.Clone(); WaterActor waterActor1=waterActor.Clone(); WaterActor waterActor2=waterActor.Clone(); } } class App { public static void Main() { GameSystem gameSystem=new GameSystem(); gameSystem.Run(new NormalAcotorA(),new FlyActorB(),new WaterActorA()); } }