设计模式学习5 Prototype
2010-07-20 16:06
239 查看
应用场景:
复杂对象构建,这些对象是可能不断变化的,但是这些对象的借口是相对稳定的。
实现代码:
Client:
复杂对象构建,这些对象是可能不断变化的,但是这些对象的借口是相对稳定的。
实现代码:
public interface INormalActor { INormalActor Clone(); } public interface IFlyActor { IFlyActor Clone(); } public interface IWaterActor { IWaterActor Clone(); } // 深拷贝通过序列化实现序列化 [Serializable] public class NormalActorA : INormalActor { #region INormalActor Members public INormalActor Clone() { return (INormalActor)this.MemberwiseClone(); } #endregion } public class NormalActorB : INormalActor { #region INormalActor Members public INormalActor Clone() { return (INormalActor)this.MemberwiseClone(); } #endregion } public class FlyActorA : IFlyActor { #region IFlyActor Members public IFlyActor Clone() { return (IFlyActor)this.MemberwiseClone(); } #endregion } public class FlyActorB : IFlyActor { #region IFlyActor Members public IFlyActor Clone() { return (IFlyActor)this.MemberwiseClone(); } #endregion } public class WaterActorA : IWaterActor { #region IWaterActor Members public IWaterActor Clone() { return (IWaterActor)this.MemberwiseClone(); } #endregion } public class WaterActorB : IWaterActor { #region IWaterActor Members public IWaterActor Clone() { return (IWaterActor)this.MemberwiseClone(); } #endregion } public class GameSystem { public void Run(INormalActor normalActor, IFlyActor flyActor, IWaterActor waterActor) { INormalActor normalActor1 = normalActor.Clone(); INormalActor normalActor2 = normalActor.Clone(); INormalActor normalActor3 = normalActor.Clone(); INormalActor normalActor4 = normalActor.Clone(); INormalActor normalActor5 = normalActor.Clone(); IFlyActor flyActor1 = flyActor.Clone(); IFlyActor flyActor2 = flyActor.Clone(); IWaterActor waterActor1 = waterActor.Clone(); IWaterActor waterActor2 = waterActor.Clone(); } }
Client:
static void Main(string[] args) { GameSystem gameSystem = new GameSystem(); gameSystem.Run(new NormalActorA(), new FlyActorA(), new WaterActorA()); }
相关文章推荐
- 设计模式系列学习四:原型模式(Prototype)
- 设计模式学习笔记(四)——Prototype原型
- C#面向对象设计模式学习笔记(5) - Prototype 原型模式(创建型模式)
- 跟着实例学习设计模式(7)-原型模式prototype(创建型)
- 设计模式学习--Prototype
- Prototype模式——设计模式学习
- 小菜学习设计模式(四)—原型(Prototype)模式
- 设计模式学习之Prototype模式
- 设计模式学习----Prototype原型模式
- 阿Sam的设计模式学习笔记---- 原型(Prototype)模式
- 设计模式学习(创建型模式)—原型模式(ProtoType)
- 步步为营 .NET 设计模式学习笔记 五、Prototype(原型模式)
- 设计模式学习笔记--工厂(Factory)、建造(Builder)和原型(Prototype)
- Prototype模式——设计模式学习
- C# 中的设计模式2:Prototype(学习笔记)
- 设计模式学习笔记(六)——Prototype原型模式
- 设计模式学习之原型模式(Prototype)
- 设计模式学习之原型模式(Prototype,创建型模式)(5)
- 设计模式之Prototype的学习笔记
- java 设计模式学习笔记四 prototype模式