Unity单例模式较为简单的理解

这篇具有很好参考价值的文章主要介绍了Unity单例模式较为简单的理解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文将介绍unity中单例模式从最简单到复杂的实际使用。

单例模式是一种设计模式。

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

单例模式是指在内存中只会创建一次对象的设计模式,并且确保一个类只有实例,而且会自行实例化,并向整个系统提供这个实例。它有以下几点要求:

  1. 因为不能被外界实例化,所以构造方法一定是private的
  2. 单例模式只能有一个实例,且这个实例属于当前类,也就是说这个实例是当前类的成员变量,还得是静态变量。
  3. 它要求向整个系统提供这个实例,即我们要再提供一个静态的方法,向外界提供当前类的实例

首先书写一个最简单的单例模式,这个类的成员变量就是一个自己的对象,并且初始化的时候将这个变量设置为自己。

Unity单例模式较为简单的理解

然后我们将这个脚本给某个对象:

Unity单例模式较为简单的理解

此时这个脚本的实例就是它自己本身。

然后我们就可以在另外的脚本中,直接调用该类.实例.方法的方式直接调用该类里的函数:

Unity单例模式较为简单的理解

一般来说,不需要继承MonoBehaviour。

接下来对单例模式进行细化讲解:

单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次使用同一个对象且作用相同时,为了防止频繁地创建对象使得内存飙升,单例模式可以让程序仅在内存中创建一个对象,让所有需要调用的地方都共享这一单例对象。

Unity单例模式较为简单的理解

一般情况下我们都会把类的构造器定义成public的访问权限,允许任何类在任何情况下都可以创建该类的对象。但是某些情况下允许其它类自由创建该类的对象没有任何意义,甚至还可能造成系统性能的下降,因为频繁地创建对象和回收对象会带来系统的开销问题。

如果一个类始终只能创建一个实例,则这个类被称为单例类。
使用起来有三个限制:

  1. 总之,在一些特殊场景下,为了避免其他类自由创建该类的对象,应该把该类的构造器使用private修饰,从而把该类的所有构造器隐藏起来。
  2. 根据良好的封装原则:一旦把该类的构造器隐藏起来,就需要提供一个public方法作为该类的访问入口,用于创建该类的对象,且该方法必须使用static修饰,因为调用该方法之前还不存在对象,因此调用该方法的不可能是对象,只能是类。
  3. 除此之外,该类还必须缓存已经创建的对象,否则该类无法知道是否已经创建过对象,也就无法保证只创建一个对象。为此该类需要使用一个成员变量来保存曾经创建的对象,因为该成员变量需要被上面的静态方法访问,所以该成员变量必须使用static修饰。

因此,代码如下:

Unity单例模式较为简单的理解

在unity中,上面的获取实例的方法可以变为使用一个public变量,然后设置其get方法即可,代码如下:

Unity单例模式较为简单的理解

(而构造函数缺失则系统会自动生成,因此这里可以不用写)

随后即可在其他地方直接对其直接调用类名.Instance.类里的方法即可。文章来源地址https://www.toymoban.com/news/detail-410565.html

到了这里,关于Unity单例模式较为简单的理解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深入理解设计模式-创建型之单例模式

    如果有些数据在系统中应该且只能保存一份,那就应该设计为单例类。 如:配置类:在系统中,我们只有一个配置文件,当配置文件被加载到内存之后,应该被映射为一个唯一的【配置实例】,此时就可以使用单例,当然也可以不用。 全局计数器:我们使用一个全局的计数

    2024年02月12日
    浏览(57)
  • 【并发专题】单例模式的线程安全(进阶理解篇)

    最近学习了JVM之后,总感觉知识掌握不够深,所以想通过分析经典的【懒汉式单例】来加深一下理解。(主要是【静态内部类】实现单例的方式)。 如果小白想理解单例的话,也能看我这篇文章。我也通过了【前置知识】跟【普通懒汉式】、【双检锁懒汉】、【静态内部类】

    2024年02月14日
    浏览(40)
  • 关于对Java单例模式的理解与简述

    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/cnb-yuchen/p/17954739 出自【进步*于辰的博客】 参考笔记一,P28.3、P29.9、P71.1。 目录 1、什么是单例模式? 2、如何实现单例模式? 3、单例模式的两种形式 3.1 形式一:“饿汉式” 3.2 形

    2024年02月03日
    浏览(32)
  • 了解单例模式,工厂模式(简单易懂)

    什么是单例? 系统运行期间有且仅有一个实例。 为什么要有单例?系统中的一些对象只需要初始化一次即可,例如:KTV中的播放器或者初始化系统参数 单例模式的要求: 一个类只有一个实例 只提供私有的构造器。 必须自己创建这个实例 定义该类的静态私有对象。 必须自

    2024年02月10日
    浏览(32)
  • 单例模式代码简单演示

    可以看到上面演示了一个简单的单例模式的代码设计,通过私有构造器+静态属性,对一个类的实例进行了全局访问限制,来确保项目中这个类对应的实例只会在堆内存中开辟一块空间 下面是main的方法调用演示 打印结果 可以看到两份内存地址是相同的,并且由于static,我们

    2024年04月29日
    浏览(29)
  • 7种创建方式,带你理解Java的单例模式

    本文分享自华为云社区《《Java极简设计模式》第01章:单例模式(Singleton)》,作者:冰 河。 看几个单例对象的示例代码,其中有些代码是线程安全的,有些则不是线程安全的,需要大家细细品味,这些代码也是在高并发环境下测试验证过的。 代码一:SingletonExample1 这个类

    2024年02月12日
    浏览(42)
  • 深入理解单例模式:如何确保一个类只有一个实例?

    欢迎来到英杰社区 https://bbs.csdn.net/topics/617804998 欢迎来到阿Q社区 https://bbs.csdn.net/topics/617897397 单例模式(Singleton Pattern)是一种常用的设计模式,用于确保一个类只有一个实例,并提供全局访问点。虽然在表面上看起来很简单,但深入理解单例模式可以帮助我们更好地应用它

    2024年01月17日
    浏览(50)
  • Unity中 单例模式

    单例模式 1.静态方法访问 在Unity中,\\\"单例模式\\\"(Singleton Pattern)是一种常见的软件设计模式。它用于确保一个类只有一个唯一的实例,并提供一种全局访问点,使得其他类可以轻松地访问该唯一实例。 在游戏开发中,特别是使用Unity引擎时,单例模式经常用于管理全局的状态

    2024年04月25日
    浏览(32)
  • Unity设计模式之单例模式

    单例模式(Singleton)是设计模式中很常见的一种设计模式,目的是为了让一个类在程序运行期间有且仅有一个实例,且方便全局访问。 1、私有的构造函数。 2、含有一个该类的静态私有对象。 3、静态的公有函数或属性,方便用户创建或者获取它本身的静态私有对象。 当项目

    2023年04月09日
    浏览(67)
  • unity 单例模式(实例详解)

    以下是一个简单的C#实现Unity中单例模式的例子: 在C#中, protected SingletonClass() {} 这个构造函数的作用是限制类的实例化方式。在这个单例模式实现中,将构造函数设为 protected 有以下几点意义: 防止外部直接创建实例 :由于构造函数是受保护的(protected),所以其他类无法

    2024年01月23日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包