单例模板

为避免来反复写单例模式,在框架中构建一个单例模板,需要用的地方直接继承就可。

基本要求

  1. 单例模式必须继承自MonoBehaviour。
  2. 由于Unity中利用单例模式需要用到Awake(),因此,对于继承关系的模板,需要对Awake进行修饰为protected,这样继承后的模板才能使用Awake,因为继承关系只能访问public和protected修饰的方法。同时为了能在子类中修改,还要对Awake加上virtual修饰,便于子类修改。

完整代码

public abstract class Singleton<T> : MonoBehaviour
    where T : MonoBehaviour {
    private static T m_instance = null;
      public static T Instance {
        get { return m_instance; }
     }
    protected virtual void Awake() {
        m_instance = this as T;
    }
}

使用方法

在需要使用模板的地方,继承此模板,如下代码:
public class XXX : Singleton<XXX>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单例在Unity是老生常谈的一个设计模式,并不是它有多么伟大,而是它有多么的方便,当然方便不等于滥用,我们要区分单...
    君子藏器於身阅读 1,937评论 0 0
  • 单例模板类: template<classT> classSingleton { public: Singleto...
    曾令伟阅读 4,500评论 0 1
  • 类注释: /** * Created by ${USER} on ${DATE} * Mail: * Versio...
    Aldrich_N阅读 4,398评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,060评论 18 399
  • 每天,我们看着别人的欢愉,悲伤,孤独,会否想想现在的自己,又是哪一种心境。 好像,我都把自己丢失了。 习惯性地不断...
    七夜孤君阅读 682评论 0 0