工厂模式:
1. 解决对象创建的问题
2. 解耦对象的创建和使用
3. 包括工厂方法和抽象方法
理解:创建产生类的工厂,根据不同的输入去产生不同的类,所以这里解耦了对象的创建和使用
例如:
class A:
def __init__(self):
print('a')
class B:
def __init__(self):
print('b')
def factory(type_class):
if type_class =="A":
return A()
elif type_class=="B":
return B()
单例模式:
1. 一个类创建出来的对象都是同一个
2. 使用共享同一个实例的方式来创建单例模式
例如
class B: # 多次实例化的对象均为同一个
def __new__(cls, *args, **kwargs):
if not hasattr(cls, '_instance'):
_instance = super().__new__(cls)
cls._instance = _instance
return cls._instance
return cls._instance
def __init__(self):
pass