单例模式基类随笔

接受了恶魔猎人的委托,第一次接触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 都是单例模式的设计,如果不用泛型去写,将会有大量相似的超高的代码,看起来很难看,读起来也费力。
更多的应用暂时还没找到,目前我的小组正在备战吉比特的游戏开发比赛,我身为策划很少去接触代码这一块。但是我通过学习能够读懂他们的代码,从而加强了与程序的沟通,不失为一件好事。

posted @ 2020-04-18 02:50  Jay_Auditore  阅读(338)  评论(0编辑  收藏  举报