23种设计模式介绍(Python示例讲解)(10)
2023-04-30 来源:飞速影视
以下是一个简单的Python示例,实现了单例模式的基本原理:
class Singleton: __instance = None def __init__(self): if Singleton.__instance is not None: raise Exception("This class is a singleton!") else: Singleton.__instance = self @staticmethod def get_instance(): if Singleton.__instance is None: Singleton() return Singleton.__instanceif __name__ == "__main__": s1 = Singleton.get_instance() s2 = Singleton.get_instance() print(s1 is s2) # True
实现思路:
在上面的示例中,我们创建了一个名为Singleton的类,并使用__init__()方法确保只有一个实例。在__init__()方法中,我们首先检查是否已经有一个实例存在。如果是这样,我们引发一个异常,否则我们将当前实例分配给__instance属性。接下来,我们创建了一个名为get_instance()的公共静态方法,以便访问该实例。在get_instance()方法中,我们首先检查是否已经有一个实例存在。如果没有,我们将创建一个新实例,并将其分配给__instance属性。否则,我们将返回现有的实例。
这种方法的主要优点是,只有一个实例被创建,可以避免重复的内存分配。另外,它提供了一个全局点访问该实例。
4、建造者模式(Builder)
建造者模式(Builder)是一种创建型设计模式,它允许我们按照特定顺序组装一个复杂的对象。建造者模式将对象的构造过程分解为多个步骤,每个步骤都由一个具体的构造者来完成。这样,客户端可以根据需要使用不同的构造者来构建不同的对象,而不必知道构造过程的具体细节。
在 Python 中,建造者模式通常使用构造者类来封装对象的构造过程,以及指导客户端如何构建对象。具体的构造者类可以继承自一个抽象的构造者类,并实现其定义的构造方法,从而实现具体的构造过程。客户端可以选择任何一个具体构造者类来构建对象,并且也可以自定义构造者类来实现自定义的构造过程。
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)
www.fs94.org-飞速影视 粤ICP备74369512号