技术开发 频道

创建型模式专题总结(Creational Pattern)


如何选择使用创建型模式

    继续考虑上面提到的游戏开发场景,假定在这个游戏场景中我们使用到的有墙(Wall),屋子(Room),门(Door)几个部件。在这个过程中,同样是对象的创建问题,但是会根据所要解决的问题不同而使用不同的创建型模式。

    如果在游戏中,一个屋子只允许有一个门存在,那么这就是一个使用Signleton模式的例子,确保只有一个Door类的实例被创建。解决的是对象创建个数的问题。
 
示例代码:
using System; public sealed class SigletonDoor { static readonly SigletonDoor instance=new SigletonDoor(); static SigletonDoor() { } public static SigletonDoor Instance { get { return instance; } } }
    在游戏中需要创建墙,屋子的实例时,为了避免直接对构造器的调用而实例化类,这时就是工厂方法模式了,每一个部件都有它自己的工厂类。解决的是“单个对象”的需求变化问题。




示例代码:
using System; public abstract class Wall { public abstract void Display(); } public class ModernWall:Wall { public override void Display() { Console.WriteLine("ModernWall Builded"); } } public abstract class WallFactory { public abstract Wall Create(); } public class ModernFactory:WallFactory { public override Wall Create() { return new ModernWall();; } }

0
相关文章