'''
1、什么是单例模式
单例模式:基于某种方法实例化多次得到实例是同一个
2、为何用单例模式
当实例化多次得到的对象中存放的属性都一样的情况,应该将多个对象指向同一个内存,即同一个实例
3、如何用
'''
# 单例模式实现方式一:
import settings
class Mysql:
__instacne = None
def __init__(self, ip, port): # 为对象独有化自己的属性
self.ip = ip
self.port = port
@classmethod
def from_conf(cls):
if cls.__instacne is None:
cls.__instacne = cls(settings.IP, settings.PORT) # 即如果没有实例化,从配置文件中加载配置,完成Mysql对象的初始化
return cls.__instacne # 意思是不论条件是否成立,都return这个
obj1 = Mysql.from_conf()
obj2 = Mysql.from_conf()
obj3 = Mysql.from_conf()
print(obj1)
print(obj2)
print(obj3)
#
# obj4=Mysql('10.10.10.11',3307)
# print(obj4)
# 单例模式实现方式二:
import settings
def singleton(cls):
cls.__instance = cls(settings.IP, settings.PORT) # 被装饰的类
def wrapper(*args, **kwargs):
单例模式的几种方式和实际使用
最新推荐文章于 2024-04-18 21:35:29 发布