23种设计模式,实在是太多了,而且其中有一些看着还貌似差不多,让人很费解,好不容易理解了每一种设计模式的含义,并且看了一堆伪代码之后,高高兴兴的合上了书本去玩几把LOL,赢了几把之后脑袋里关于那23种设计模式的概念就剩下80%了,然后接下来的每日工作中,基本写代码的时候也用不到啊!老板催着让你做功能,你就还哪里记得去使用设计模式啊,就开始乱写吧,日复一日,23种设计模式基本就和你拜拜了,再见了。
其实呢,在游戏开发中,我们能够在Unity中看见的,和我们经常使用的也就是那么几种,在其他软件设计中,同样也就是经常用这么几种,那些“备忘录”模式,“责任链”模式等等,基本上不用,下面我们就说说我们常用的这几种吧:“单例模式”,“观察者模式”,“迭代器模式”,“访问者模式”。(顺便插一句,那些各种工厂模式,我就不多说了,都是很容易理解的。)
1. 单例模式
概念很简单,保证一个类仅有一个实例,并提供一个访问它的全局访问点。我就提供两段代码就好了,在游戏当中,有两种类,一种是不继承MonoBehavior,另外一种是继承它的,首先看不继承的,
Class Singleton
{
Static MySingleton; // 单件对象,全局唯一的。
Static Instance()
{
if(MySingleton == null)
MySingleton = new MySingleton();
return MySingleton;
} // 对外暴露接口
}
下面来看继承自MonoBehavior的类,
Class Singleton:MonoBehavior
{
Static MySingleton;