Python 设计模式深度解析
1. 单例模式(Singleton Pattern)
单例模式的核心思想是确保某个对象只有一个实例存在。通常,这个对象是一种管理类,像在面向对象编程中经常讨论的那些管理类。这类对象常被多种其他对象引用,如果将管理对象的引用传递给需要它的方法和构造函数,会让代码难以阅读。
在多数编程环境里,单例模式通过将构造函数设为私有(防止创建额外实例),再提供一个静态方法来获取唯一实例。该方法首次调用时创建新实例,后续调用都返回同一个实例。
在 Python 中,由于没有私有构造函数,可使用__new__类方法来保证只创建一个实例。以下是具体实现:
class OneOnly: _singleton = None def __new__(cls, *args, **kwargs): if not cls._singleton: cls._singleton = super(OneOnly, cls).__new__(cls, *args, **kwargs) return cls._singleton测试代码如下:
o1 = OneOnly() o2 = OneOnly() print(o1 == o2) # 输出: True print(o1) # 输出: <__main__.OneOnly object at ...> print(o2) #