什么是设计模型

设计模型是经过总结,优化的,对一些经常碰到的编程的问题,重复利用的解决方案。在IT行业中设计模型一共有23种,可以分为三大类

  • 创建模型:提供实例化的方法,为适合的状况提供相应的对象创建方法
  • 结构化模型:通常用来处理实体之间的关系,使得这些实体能够更好地协同工作
  • 行为模式:用于在不同的实体建进行通信,为实体之间的通信提供更容易,更灵活的通信方法

设计模型之单例模型

理解

保证一个类仅有一个实例,并提供一个访问它的全局访问点

场景

当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。

当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。

实现

class Single(type):
    new_obj = None  # 记录一个被创建对象的引用

    def __call__(self, *args, **kwargs):
        # 判断类属性是否为空引用, 若为空则为对象分配空间
        if not self.new_obj:
            obj = super().__call__(*args, **kwargs)
            self.new_obj = obj
            return self.new_obj
        return self.new_obj


class MyClass(metaclass=Single):
    def __init__(self, name):
        self.name = name


obj_1 = MyClass('kevin')
obj_2 = MyClass('tony')
print(obj_1 is obj_2)
# True

# 实现方式不唯一,更多操作:https://www.cnblogs.com/Dominic-Ji/p/10525994.html
Last modification:April 15, 2022
如果觉得我的文章对你有用,请随意赞赏