Unityd 常用设计模式:简单工厂模式
2015-07-14 18:07
936 查看
Unityd 常用设计模式:简单工厂模式
最近在学设计模式,群里的朋友说,单例,抽象工厂,简单工厂,策略模式用得比较多,所以就来好好的研究一下设计模式,有一个号的编程思想总是好的。先说事例的思路:游戏中肯定有怪物,比如小怪和boss都是属于怪物的,如果我一个关卡是小怪,那我就要new xiaoguai(),一个关卡小怪和boss都有,那么new xiaoguai(),new boss(),这样一个个new出来很麻烦,如果我有一个生产怪物的工厂,我只需要告诉他我需要什么类型的怪物她马上给就给我生产一个出来,那就方便多了。
贴代码:
//抽象产品角色 interface Monster { void run(); void attack(); void death(); } //具体产品角色 class xiaoguai : Monster { public void run() { Console.WriteLine("xiaoguai"); } public void attack() { Console.WriteLine("xiaoguai"); } public void death() { Console.WriteLine("xiaoguai"); } } //具体产品角色 class boss : Monster { public void run() { Console.WriteLine("boss"); } public void attack() { Console.WriteLine("boss"); } public void death() { Console.WriteLine("boss"); } } //工厂类角色,这里用到了单利模式中的恶汉式 class MonsterFactory { private static MonsterFactory _Intance; private MonsterFactory() { } public static MonsterFactory Instance { get { if (_Intance == null) { _Intance = new MonsterFactory(); return _Intance; } return _Intance; } } public Monster Prodution(int nub) { Monster mo = null; switch (nub) { case 0: mo = new xiaoguai(); break; case 1: mo = new boss(); break; } return mo; } //开始生产啦。。。 public static void Main(string[] ages) { MonsterFactory.Instance.Prodution(0).attack(); Console.Read(); } }
以后我们需要什么类型的怪物只需要告诉工厂你想生产的怪物代号就可以得到所需的怪物了~嘿嘿,是不是更加方便。
总结一下这个事例用到的一些内容:接口,单例模式,简单工厂模式。
PS。如果有什么错误或者建议欢迎指出来~一起学习,一起进步
相关文章推荐
- PropertyChangeListener简单理解
- 什么是设计模式
- 设计模式之创建型模式 - 特别的变量问题
- 设计模式之创建型模式
- 浅谈设计模式的学习
- 架构纵横谈之二 ---- 架构的模式与要点
- PostgreSQL教程(二):模式Schema详解
- 代理区独立模式的说明
- C#中的递归APS和CPS模式详解
- C#迭代器模式(Iterator Pattern)实例教程
- C#观察者模式(Observer Pattern)实例教程
- C#单例模式(Singleton Pattern)实例教程
- Erlang中的模块与模式匹配介绍
- C#装饰器模式(Decorator Pattern)实例教程
- PHP设计模式之装饰者模式代码实例
- php设计模式之单例模式实例分析
- 介绍php设计模式中的工厂模式
- PHP设计模式之适配器模式代码实例
- 动态代理的5模式使用示例和Mixin模式
- C#命令模式(Command Pattern)实例教程