一、单例模式
单例模式是一种常见的设计模式,用于确保类只有一个实例,并提供一个全局访问点来获取该实例。
简单来说,单例模式的核心思想是通过限制类的实例化过程,
使得类在整个应用程序中只有一个实例,并且提供一个访问该实例的全局方法。
这在某些情况下非常有用,例如需要共享的资源、配置信息、全局状态等。
如何实现单例模式
1、创建一个类,该类将作为单例类
例子中我们创建一个名为GameManager 的类。
2.在单例类中定义一个私有静态属性instance,用于存储类的唯一实例对象。
这是一个私有属性,确保只能在类的内部访问。
3.定义一个私有的构造函数,它将阻止外部实例化该类。
4.实现一个公共的静态方法getInstance,用于获取单例类的实例对象。
该方法首先检查instance 是否存在,如果不存在则创建一个新的实例,然后返回该实例;
如果存在则直接返回现有的实例对象。
5.可以根据需要在单例类中添加其他方法和属性。
使用单例类时,可以通过调用GameManager.getInstance()来获取GameManager类的实例。
例如:
这样,无论在哪个地方调用GameManager.getInstance() ,
都能获得同一个GameManager实例对象。
通过获取单例实例对象,可以方便地在不同的场景和脚本中访问和修改单例类的方法和属性。
例如,可以使用以下方式获取用户分数并设置用户分数:
使用单例模式,可以确保在整个游戏或应用程序中只有一个GameManager实例对象存在,
方便管理全局状态、资源、配置信息等。
同时也避免了频繁的对象创建和销毁,提高了性能和代码的复用性。
二、属性声明静态
将属性声明为静态意味着该属性属于类本身,而不是类的实例。
静态属性是在类的定义阶段就创建,
并且可以被类和类的实例访问和使用。
例如:
在上面的示例中,声明了一个静态属性staticProperty ,它属于Myclass类本身。
它不属于Myclass的任何实例,因此无论创建多少个实例,这个属性都只有一份。
对于静态属性,可以使用类名直接访问,而不需要创建类的实例。
这是因为静态属性属于类本身而不是类的实例,因此无法通过实例来访问
例如:
需要注意的是,静态属性不能通过类的实例来访问,
因为它们不属于具体的实例对象。
以下方式是错误的:
总的来说,将属性声明为静态属性意味着它属于类本身,而不是类的实例。
静态属性在类定义阶段就会创建,可以通过类名直接访问并在整个类中共享 。