您的位置:首页 > 移动开发 > Unity3D

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。如果有什么错误或者建议欢迎指出来~一起学习,一起进步
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计模式 unity 模式