当前位置: 首页 > news >正文

美国做刀剑的网站创建一个网站需要什么

美国做刀剑的网站,创建一个网站需要什么,dedecms购物网站模板,常德seo公司Unity中单例模式是非常常用的写法,可以基于C#语言的几种不同方法来实现。 下面我将列出几种常见的实现方式: 1. 经典的单例模式 public class SingletonExample : MonoBehaviour {private static SingletonExample instance;public static SingletonEx…

Unity中单例模式是非常常用的写法,可以基于C#语言的几种不同方法来实现。
下面我将列出几种常见的实现方式:

1. 经典的单例模式

public class SingletonExample : MonoBehaviour
{private static SingletonExample instance;public static SingletonExample Instance{get{if (instance == null){instance = FindObjectOfType<SingletonExample>();if (instance == null){GameObject obj = new GameObject("SingletonExample");instance = obj.AddComponent<SingletonExample>();DontDestroyOnLoad(obj);}}return instance;}}private void Awake(){if (instance == null){instance = this;DontDestroyOnLoad(this.gameObject);}else if (instance != this){Destroy(gameObject);}}
}

优点:

  • 易于理解和实现。
  • 可以在Unity的场景中直接使用,提供了与Unity生命周期事件的结合。

缺点:

  • 不是完全的线程安全。在多线程环境下,可能会创建多个实例。
    如果没有在场景中找到实例,它会创建一个新的GameObject,这可能会导致意外的副作用。

2. 使用静态构造函数

public class SingletonExample
{private static readonly SingletonExample instance = new SingletonExample();static SingletonExample(){}private SingletonExample(){}public static SingletonExample Instance{get{return instance;}}
}

优点:

  • 实现简单,线程安全由CLR (公共语言运行时)保证。
  • 静态构造函数只会被执行一次,保证了实例的唯一性。

缺点:

  • 实例在程序运行时立即创建,无论是否使用,可能会导致资源的浪费。
    不适合在Unity场景对象中使用,因为它与MonoBehaviour断开了联系,不能直接应用到GameObject上。

3. 使用Lazy类型确保线程安全

using System;public class SingletonExample
{private static readonly Lazy<SingletonExample> lazy =new Lazy<SingletonExample>(() => new SingletonExample());public static SingletonExample Instance { get { return lazy.Value; } }private SingletonExample(){}
}

优点:

  • 实现简单,线程安全由CLR (公共语言运行时)保证。
  • 静态构造函数只会被执行一次,保证了实例的唯一性。

缺点:

  • 实例在程序运行时立即创建,无论是否使用,可能会导致资源的浪费。
    不适合在Unity场景对象中使用,因为它与MonoBehaviour断开了联系,不能直接应用到GameObject上。

4. 双重校验锁(Double-Check Locking)

public class SingletonExample
{private static SingletonExample instance;private static readonly object lockObject = new object();public static SingletonExample Instance{get{if (instance == null){lock (lockObject){if (instance == null){instance = new SingletonExample();}}}return instance;}}private SingletonExample(){}
}

优点:

  • 线程安全,并且在需要时才创建实例。
  • 相对于Lazy,在早期的.NET版本中也可以使用。

缺点:

  • 实现复杂,需要正确管理锁,否则可能会导致死锁。
  • 性能开销,每次访问实例时都需要进行双重检查。
  • 不直接与MonoBehaviour兼容,同样不适合直接应用于Unity场景中的对象。

总结:

在选择实现单例的方法时,应当考虑是否需要延迟初始化、是否在多线程环境中使用、以及是否需要与Unity的MonoBehaviour系统集成等因素。
在Unity中,经常使用第一种方法,因为它能够更好地与Unity的组件和生命周期集成。
不过,如果你在Unity项目中需要使用单例模式管理非MonoBehaviour类型的资源或类,例如数据管理或服务类,那么**第三种方法(Lazy)**是一个非常好的选择。

http://www.tj-hxxt.cn/news/14678.html

相关文章:

  • 自建网站 做自定义导航网站域名注册查询
  • 棉桃剥壳机做网站谷歌推广代理商
  • bbs网站建设bt磁力种子搜索引擎
  • 邯郸wap网站制作全网营销式网站
  • 网站正在建设中 打不开怎么办百度总部电话
  • 福州网站制作黑帽seo联系方式
  • 优质手机网站建设哪家好深圳谷歌网络推广公司
  • 广州建设外贸网站百度风云榜各年度小说排行榜
  • 网站网页设计怎么报价seo公司彼亿营销
  • 现在最流行的网站推广方式有哪些百度区域代理
  • 贵州网站建设设计公司哪家好网站优化公司开始上班了
  • 甘肃自助建站系统怎么用今天的三个新闻
  • 兰州网站建设方案宁波正规seo快速排名公司
  • 厦门建设委员会网站精准营销系统价值
  • wordpress评论500温州企业网站排名优化
  • 平顶山哪里做网站爱站网长尾关键词挖掘工具下载
  • 运营网站费用营销咨询公司排名
  • 商城网站包括哪些模块搜狗收录提交入口
  • 大朗镇做网站百度热议怎么上首页
  • 做电影网站需要用什么空间电商推广方案
  • jsp网站开发论文2017怎么在平台上做推广
  • 知名企业网站搭建如何在百度上添加自己的店铺
  • 如何用本机电脑做网站服务器百度账号怎么注销
  • 哪些做任务的网站靠谱湖州网站建设制作
  • 互联网登录的网站名贵州seo学校
  • wordpress 自媒体插件陕西seo主管
  • 网站进度条代码常见的营销方式有哪些
  • 让网站建设便宜到底友情链接吧
  • 网页设计广州网站sem营销是什么意思
  • 广州人社app怎么下载百度首页排名优化哪家专业