- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
unity3D技术之Unity(五)使用场景Ⅱ用于单例模式
有关单例模式本身,我想就不用我在这里多说了,它可以说是模式中最简单的一个了。我只是想谈谈我对这个模式的一点想法。为了实现单例模式,我们通常的做法是,在类中定义一个方法如GetInstance,【狗刨学习网】判断如果实例为null则新建一个实例,否则就返回已有实例。但是我觉得这种做法将对象的生命周期管理与类本身耦合在了一起,与SRP原则相违背。所以我觉得遇到需要使用单例的地方,应该将生命周期管理的职责转移到对象容器上,而我们的类依然是一个干净的类。 为了接下来的说明,我们先编写几个后面需要的接口和类:准备工作IOrder接口、CommonOrder类、VipOrder类: 将Unity应用于单例模式,主要有两种使用场景:(1)将类型注册为单例;(2)将已有对象注册为单例。将类型注册为单例与上一篇文章建立类型映射类似,我们可以将一个接口注册为标识键,对应一个具体类。不同的是,要用于单例模式,我们需要使用一个LifetimeManager类型的参数,并指定为ContainerControlledLifetimeManager类型:RegisterTypeTFrom,TTo(newContainerControlledLifetimeManager())以下的代码以接口注册为例,演示了如何为一个接口注册一个具体类,并声明为单例: 同样,我们可以为一个基类注册一个具体类,与前述的类似,如:container.RegisterTypeOrder,CommonOrder(newContainerControlledLifetimeManager());我们还可以把某个类直接注册为单例,而不进行类型的映射,如:container.RegisterTypeCommonOrder(newContainerControlledLifetimeManager());这里需要指出的是:默认情况下,直接使用RegisterType(不指定LifetimeManager),然后Resolve所得到的对象的生命周期是短暂的,容器并不保存对象的引用,每次调用Resolve方法我们都会得到一个新对象。然而,当我们指定了ContainerControlledLifetimeManager参数后,容器在第一次调用Resolve方法时会创建一个新对象,此后在每次调用Resolve时,都会返回之前创建的对象。除此之外,Unity还扩展了单例的使用方式。例如,我需要把某个类设计为单例,但是发现在应用中我们需要这个类的两个单例,分别有不同的用途,这时,使用Unity的类型与名称组合的标识键,就可以满足这种使用场景。使用方式如下(以接口为例):ps:使用类型与名称的组合的例子可以参见前面一篇文章,大致相同。同理,我们也可以用基类和名称的组合为标识键注册具体类,还可以直接把某个类和名称组合进行注册。这里不再赘述。 将已有对象注册为单例如果我们已经创建了一个对象,并希望使用已创建的对象作为单例,而不是由容器新创建一个对象,那么我们应该使用RegisterInstance方法。以下的代码以接口注册为例,演示了如何使用一个已有对象,为一个接口注册一个具体类,并声明为单例:将已有对象注册为单例,同样也支持前面提到的几种使用方式,如注册基类、使用名称等,也就不再重复了。
您可能关注的文档
最近下载
- ZIF-67合成方法设计.docx
- 高空作业安全监理实施细则.pdf VIP
- (新)国家药品监督管理局药品审评中心考试附答案.docx VIP
- 2025年保卫管理员题库及答案.docx VIP
- BPA8604D_CN_DS_Rev.1.0 (1) 规格书 晶丰明源家电电源.pdf VIP
- 制药专用控制系统系列:Rockwell Automation PharmaSuite_(1).制药专用控制系统系列:RockwellAutomationPharmaSuite概述.docx VIP
- 国家药品监督管理局药品审评中心考试及答案(荐).docx VIP
- (2025)国家药品监督管理局药品审评中心考试及答案.docx VIP
- 2024上海各区高三语文一模试题汇编《现代文二》.docx VIP
- 主要建筑材料碳排放因子查询表.docx VIP
原创力文档


文档评论(0)