Python设计模式:单例、模板与适配器模式详解
单例模式
在大多数编程环境中,单例模式通过将构造函数设为私有,防止他人创建额外实例,再提供一个静态方法来获取唯一实例。该方法首次调用时创建新实例,后续调用都返回同一实例。
在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 0xb71c008c>
print(o2) # <__main__.OneOnly object at 0xb71c008c>
这两个对象相等且地址相同,说明是同一个对象。不过这种实现不够透明,调用构造函数时通常期望得到新实例,而这里并非如此。可以通过
超级会员免费看
订阅专栏 解锁全文
349

被折叠的 条评论
为什么被折叠?



