python 学习 设计模式(goF设计模式)
一 单例模式
用来创建单个实例
#/usr/bin/env python3 # -*- coding:utf-8 -*- # Author: ZSHAOX class Foo: instance = None #设置静态字段默认为None def __init__(self, name): self.name = name @classmethod #设置类方法 def get_instance(cls): if cls.instance: #如果cls(类名称).instance静态自断为True那么直接return return cls.instance else: obj = cls('tubie') #如果False 那么定义实例,将实例负值给静态字段 并return cls.instance = obj return cls.instance obj1 = Foo.get_instance() print(obj1) obj2 = Foo.get_instance() #当二次判断的时候cls.instance已经存在obj值所以将不会从新负值 print(obj2)