单例模式基类随笔

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




以上是关于单例模式基类随笔的主要内容,如果未能解决你的问题,请参考以下文章

20160606本周随笔

[设计模式][面向对象]单例模式

面向接口及单例工厂随笔

UI(UGUI)框架-------------UIManager单例模式与开发BasePanel面板基类/UIManage统一管理UI面板的实例化/开发字典扩展类

PHP设计模式之工厂模式

设计模式之单例模式