单例模式与多例模式的创建及使用。
时间: 2024-05-11 18:18:11 浏览: 4
单例模式和多例模式都是常用的创建型设计模式。
单例模式指的是一个类只能创建一个实例,并提供一个全局访问点来获取这个唯一的实例。单例模式可以用来管理全局状态或资源。
多例模式指的是一个类可以创建多个实例,但是每个实例都有一个特定的名称或标识符,可以通过这个名称或标识符来获取对应的实例。多例模式可以用来管理多个相似但不同的对象。
下面是单例模式和多例模式的示例代码:
单例模式:
```python
class Singleton:
__instance = None
def __new__(cls):
if cls.__instance is None:
cls.__instance = super().__new__(cls)
return cls.__instance
s1 = Singleton()
s2 = Singleton()
print(s1 is s2) # True
```
多例模式:
```python
class Multiton:
__instances = {}
def __new__(cls, name):
if name not in cls.__instances:
cls.__instances[name] = super().__new__(cls)
return cls.__instances[name]
m1 = Multiton('instance1')
m2 = Multiton('instance2')
m3 = Multiton('instance1')
print(m1 is m2) # False
print(m1 is m3) # True
```
在单例模式中,使用了类变量 `__instance` 来保存唯一的实例,通过类方法 `__new__` 来创建实例并返回它,如果已经存在实例则直接返回。
在多例模式中,使用了类变量 `__instances` 来保存不同名称的实例,通过类方法 `__new__` 来创建实例并返回它,如果已经存在同名的实例则直接返回。