单例模式基类随笔
Posted jay-auditore
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例模式基类随笔相关的知识,希望对你有一定的参考价值。
接受了恶魔猎人的委托,第一次接触Unity的程序基础程序框架,感觉打开了新世界大门。
接下来说说第一节的单例模式基类模块
不得不说这是一个偷懒的绝技,运用泛型大量减少重复代码真是不要太爽。
先展示一段单例模式代码:
public class GameManager
{
private static GameManager instance;
public static GameManager GetInstance()
{
if (instance == null)
instance = new GameManager();
return instance;
}
}
单例模式就是只有一个实例的类,十分简单实用的设计。
下面是一段我模仿的代码:
public class BaseManager<T> where T:new()
{
private static T instance;
public static T GetInstance()
{
if (instance == null)
instance = new T();
return instance;
}
}
public class GameManager : BaseManager <GameManager>
{
}
public class ObjectManager : BaseManager <ObjectManager>
{
}
这里我特别记得老师强调了where
的使用,要去约束类型参数T。
单例模式基类还为下一节的缓存池做铺垫,下一节的缓存池继承了 BaseManager 去编写,写起来也很简洁。
像 GameManager 和 ObjectManager 都是单例模式的设计,如果不用泛型去写,将会有大量相似的超高的代码,看起来很难看,读起来也费力。
更多的应用暂时还没找到,目前我的小组正在备战吉比特的游戏开发比赛,我身为策划很少去接触代码这一块。但是我通过学习能够读懂他们的代码,从而加强了与程序的沟通,不失为一件好事。
以上是关于单例模式基类随笔的主要内容,如果未能解决你的问题,请参考以下文章
UI(UGUI)框架-------------UIManager单例模式与开发BasePanel面板基类/UIManage统一管理UI面板的实例化/开发字典扩展类