原型模式示例程式碼
模擬在遊戲裡建立不同種類的怪物
//抽象類
public abstract class NormalActor
{
public abstract NormalActor Clone();
}
//抽象類
public abstract class FlyActor
{
public abstract FlyActor Clone();
}
//抽象類
public abstract class WaterActor
{
public abstract WaterActor Clone();
}
public class NormalActorA : NormalActor
{
public override NormalActor Clone()
{
//注意這裡是淺拷貝,深拷貝可以用序列化來實現
return (NormalActor)this.MemberwiseClone();
}
}
public class NormalActorB : NormalActor
{
public override NormalActor Clone()
{
//注意這裡是淺拷貝,深拷貝可以用序列化來實現
return (NormalActor)this.MemberwiseClone();
}
}
public class FlyActorA : FlyActor
{
public override FlyActor Clone()
{
//注意這裡是淺拷貝,深拷貝可以用序列化來實現
return (FlyActor)this.MemberwiseClone();
}
}
public class FlyActorB : FlyActor
{
public override FlyActor Clone()
{
//注意這裡是淺拷貝,深拷貝可以用序列化來實現
return (FlyActor)this.MemberwiseClone();
}
}
public class WaterActorA : WaterActor
{
public override WaterActor Clone()
{
//注意這裡是淺拷貝,深拷貝可以用序列化來實現
return (WaterActor)this.MemberwiseClone();
}
}
public class WaterActorB : WaterActor
{
public override WaterActor Clone()
{
//注意這裡是淺拷貝,深拷貝可以用序列化來實現
return (WaterActor)this.MemberwiseClone();
}
}
public class GameSystem
{
public void Run(NormalActor normalActor, FlyActor flyActor, WaterActor waterActor)
{
NormalActor normalActor1 = normalActor.Clone();
NormalActor normalActor2 = normalActor.Clone();
NormalActor normalActor3 = normalActor.Clone();
NormalActor normalActor4 = normalActor.Clone();
NormalActor normalActor5 = 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 NormalActorA(), new FlyActorB(), new WaterActorA());
}
}
相關文章
- 工廠模式示例程式碼模式
- 常用設計模式之.Net示例程式碼合集設計模式
- RabbitMQ 程式碼示例MQ
- lisp 程式碼示例Lisp
- 排序程式碼示例排序
- JavaScript中的原型、原型鏈、原型模式JavaScript原型模式
- 原型模式原型模式
- 使程式執行更高效——原型模式原型模式
- Java NIO 程式碼示例Java
- java SPI 程式碼示例Java
- 【Azure 儲存服務】Java Storage SDK 呼叫 uploadWithResponse 程式碼示例(詢問ChatGTP得程式碼原型後人力驗證)Java原型
- 設計模式-原型模式設計模式原型
- 設計模式 —— 原型模式設計模式原型
- 設計模式(原型模式)設計模式原型
- 設計模式:原型模式設計模式原型
- 設計模式 - 原型模式設計模式原型
- JS 原型模式JS原型模式
- 原型模式(Prototype)原型模式
- (一)原型模式原型模式
- Java設計模式---原型模式Java設計模式原型
- 設計模式(三)——原型模式設計模式原型
- java設計模式—原型模式Java設計模式原型
- 設計模式【5】-- 原型模式設計模式原型
- Java設計模式-原型模式Java設計模式原型
- 設計模式(十六)原型模式設計模式原型
- 設計模式之原型模式設計模式原型
- 設計模式-原型模式(Prototype)設計模式原型
- js程式碼與html程式碼分離示例JSHTML
- 設計模式:橋接模式及程式碼示例、橋接模式在jdbc中的體現、注意事項設計模式橋接JDBC
- Kafka 1.0.0 d程式碼示例Kafka
- 靜態代理程式碼示例
- xargs 的示例程式碼.
- java 管道流程式碼示例Java
- 視窗程式框架示例程式碼框架
- 設計模式:原型模式介紹 && 原型模式的深拷貝問題設計模式原型
- 物件導向的程式設計之原型模式物件程式設計原型模式
- 原型模式小結原型模式
- 設計模式之原型設計模式原型