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

宁波外贸公司网站建设唐山网站建设方案书

宁波外贸公司网站建设,唐山网站建设方案书,创网网站后台管理系统,个人网站如何被百度收录0.前言StarryFun#xff1a;Unity游戏开发——关于单例模式的理解​zhuanlan.zhihu.com之前一篇文章讲了单例模式的简单理解#xff0c;自知其中有很多不严谨的地方#xff0c;由于本萌新也是在学习阶段#xff0c;所以去翻看了开源的项目都是怎么实现的#xff0c;发现了…0.前言StarryFunUnity游戏开发——关于单例模式的理解​zhuanlan.zhihu.com之前一篇文章讲了单例模式的简单理解自知其中有很多不严谨的地方由于本萌新也是在学习阶段所以去翻看了开源的项目都是怎么实现的发现了一个比较完整详细的解决方案并且给提取了出来准备当作工具在项目中复用接下来给大家聊一下这个单例框架的实现思路和使用方法。1.单例框架介绍先聊聊这个单例框架都有什么玩法可以减少写重复代码使用属性标签更有条理的管理单例模块可以控制单例的生命周期可以选择是否开放自身实例的获取即有基于monobehaviour生命周期的单例也有类的单例单例框架是由两部分组成这里我们主要介绍拥有MonoBehaviour生命周期的单例类的单例同理所以就不重复介绍了单例模块所有脚本ISingleton一个接口里面也只有一个初始化方法。使用接口有两个作用一对单例进行约束二是提供统一的初始化接口 MonoSingleton这个是开放了外界对自身实例进行访问的单例写法也是比较常规的玩法使用的方法是继承它就可以了MonoSingletonCreator一个单例的创建器对特殊情况的处理和实例的创建都在这里完成属于一个比较核心的类MonoSingletonPath通过属性标签来指定全局单例在场景中的路径目的是让用户管理单例模块更有条例一些核心思想是反射AttributeMonoSingletonProperty这个是关闭了外界对自身实例的访问也就是实例私有化对外界也只提供静态方法这样做有两个好处1.使成员变量更安全尤其是多人协作的时候做了这个限制也就降低了一些未知的风险。2.调用方式为“单例名.方法名”这比“单例名.Instance.方法名”少了一步作为一个懒人使用体验极佳。3.使用方式单例的实现通过继承实现单例using QF; using UnityEngine;public class Class2MonoSingleton : MonoSingletonClass2MonoSingleton {// 重写这个方法可以手动控制初始化public override void OnSingletonInit(){Debug.Log(this.name OnInit);}// 基于mono生命周期的脚本正常实现就行了private void Awake(){Debug.Log(this.name : Awake);}private void Start(){Debug.Log(this.name : Start);}// 重写这个方法就会在销毁的时候把单例置空protected override void OnDestroy(){base.OnDestroy();Debug.Log(this.name OnDestroy);} }2. 通过属性器实现单例using QF; using UnityEngine;// 第一步引入ISingleton并实现接口方法 public class Class2MonoSingletonProperty : MonoBehaviour, ISingleton {public int myFirstIndex;// 第二步使用属性器拿到自身实例并且私有化private static Class2MonoSingletonProperty mInstance{get{return MonoSingletonCreator.CreateMonoSingletonClass2MonoSingletonProperty();}}// 接口提供的初始化方法可以自己控制单例的初始化时机public void OnSingletonInit(){Debug.Log(this.name : OnInit);}// 这个一般用不到感觉可以考虑不实现这个方法public void Dispose(){MonoSingletonPropertyClass2MonoSingletonProperty.Dispose();}// 自定义的一个静态方法public static void FirstFunc(int firstIndex){// 因为自身实例私有化了只能通过这种方式获取成员变量mInstance.myFirstIndex firstIndex;}// 剩下的就跟mono生命周期一样了// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){} }单例的使用首先这些单例不需要手动挂载到场景中使用时直接调用就好了using UnityEngine;public class MonoSingletonTest : MonoBehaviour {// Start is called before the first frame updatevoid Start(){// 继承单例的使用法法Class2MonoSingleton.Instance.Func();// 属性器单例的使用方法类名静态方法Class2MonoSingletonProperty.Func(1);} }如果想让单例管理的更有条例可以使用标签属性Attribute4.总结以上代码取自QF框架中的单例模块在我看来已经可以满足项目中的各种需求了使用起来也很顺手也非常贴合之前我对单例模式的理解也算是对于单例的最佳实践了。下面是QF框架的下载地址大家可以只使用其中的单例模块当然也可以尝试其他更厉害的功能。QF框架下载地址
http://www.sadfv.cn/news/183916/

相关文章:

  • acm网站免费做腾讯服务商平台
  • 做pc端网站哪家好东莞建网站找哪里
  • 网站建站视频魏县手机网站建设
  • 如何成为游戏代理合肥正规的seo公司
  • 开平网站开发建站之星网站模版商城
  • 网站建站哪个品牌好自适应网站建设都找全网天下
  • 百度做个公司网站要多少钱电子产品在哪些网站做调研
  • 莆田外贸网站建设有哪些目前最好用的网络管理软件
  • erp软件多少钱什么叫seo网站推广
  • 城子河网站建设苏州h5网站建设
  • 企业建站wordpress网页设计素材和制作教程
  • 快速免费做网站wordpress素锦下载
  • 旅游网站排名前5位的在手机上做网站
  • 怎么优化网站打开速度物联网app开发平台
  • 宁波 商城网站建设wordpress5.0漏洞
  • 深圳市住房和建设局网站住房免费的虚拟电脑app
  • 浙江网站建设设计广西建设网站网址多少
  • 网站促销活动策划山东百度推广总代理
  • 常用网站建设技术有哪些移动crm系统客户端
  • 企业网站 源代码网站开发技术 创新点
  • 网站要怎么样做排名才上得去wordpress5.0改进
  • 网站赚钱吗制作公司网页要多长时间
  • 哪里可以做游戏视频网站广西柳州网站建设
  • 漳州建设银行网站wordpress免费简约主题
  • 企业网站开发文档电商类网站模板
  • 上饶市建设局有什么网站wordpress 页面二维码
  • 广东十大网站建设排名常用于做网站的软件
  • wordpress post属性优化大师的使用方法
  • 教学网站建设论文做网站就是做服务
  • 免费单页网站后端开发是干什么的