unity-单例模式

unity单例模式-目录

什么是单例模式

优点

缺点

例子

什么是单例模式

单例模式是一种常用的软件设计模式,指一个类只有一个实例,且提供一个全局访问的属性访问此单例。

那么在使用单例模式前我们要思考怎么获得一个实例?我们如果要在一个C#脚本中访问另外一个脚本,我们要在获取实例的时候就创建它,如果要在多个脚本中调用那么实例对象的创建和销毁将非常频繁,会占用大量的系统资源。

单例就可以解决这方面的问题,单例模式可以直接创建一个实例来全局调用,相当是一个全局共享的类,节省系统的资源。

优点

  • 可以有效的减少内存开支,单例模式只有一个实例,避免频繁的创建和销毁对象,节省系统的资源
  • 方便调用,共享资源,因为创建了一个全局共享的类
  • 避免资源重复,例如一个写文件操作,由于只有一个实例存在内存中,避免对同一个资源文件的同时写操作

缺点

  • 单例模式一般没有接口,他要想实现扩展十分困难
  • 所有的类都可以访问,会造成类的关系混乱
  • 造成代码臃肿,减低代码的可读性,可靠性

注:在项目要减少类对单例类的依赖,提高代码质量

脚本实例

游戏中GameManager通常要使用单例模式,下面就用它为例展示一下在C#脚本单例模式怎么实现

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GameManager : MonoBehaviour
{
    public static GameManager instance;
    private void Awake()
    {
        if(instance!=null)
        {
            Destroy(gameObject);
        }
        instance = this;
    }
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

真的没事鸭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值