python设计模式
01、Python设计模式:单例模式
02、Python设计模式:工厂模式
03、Python设计模式:抽象工厂模式
04、Python设计模式:建造者模式
05、Python设计模式:原型模式
06、Python设计模式:装饰器模式
07、Python设计模式:代理模式
08、Python设计模式:桥接模式
09、Python设计模式:适配器模式
10、Python设计模式:组合模式
11、Python设计模式:外观模式
12、Python设计模式:享元模式
13、Python设计模式:解释器模式
14、Python设计模式:模板模式
15、Python设计模式:命令模式
16、Python设计模式:迭代器模式
17、Python设计模式:观察者模式
18、Python设计模式:备忘录模式
19、Python设计模式:仲裁者模式
20、Python设计模式:状态模式
21、Python设计模式:责任链模式
22、Python设计模式:访问者模式
本文档使用 MrDoc 发布
-
+
首页
01、Python设计模式:单例模式
### **优点** 单例模式是一种设计模式,它的主要目的是确保一个类只能创建一个实例,并提供一个全局访问点。单例模式的优点如下: 1、 节省资源:由于单例模式只创建一个实例,可以避免频繁创建和销毁对象,从而节省了系统资源; 2、 简化操作:单例模式可以提供一个全局的访问点,方便其他代码调用实例的方法和属性,避免了频繁传递对象实例的操作; 3、 数据共享:单例模式可以使多个客户端共享同一个实例,避免了数据不一致的问题; 4、 实现方便:单例模式的实现比较简单,可以快速实现; 5、 可控性:由于单例模式只有一个实例,可以对该实例进行严格的控制和管理,确保系统的稳定性和安全性; ### **缺点** 1、 对象共享可能带来问题:由于单例模式只有一个实例,因此如果这个实例出现问题,整个系统都会受到影响,而且对于多线程环境,需要特别注意线程安全问题; 2、 单例模式不适用于动态扩展:由于单例模式只能创建一个实例,因此在需要动态扩展实例的情况下,会比较麻烦,可能需要修改代码; 3、 单例模式可能导致代码紧耦合:由于单例模式提供了全局访问点,可能导致代码之间的耦合度增加,降低了代码的灵活性和可扩展性; 4、 单例模式的测试比较困难:由于单例模式只能创建一个实例,因此在测试的时候可能会比较困难,需要特别注意测试环境和测试用例的设计; ### **常见应用场景** 1、 配置文件管理器:由于配置文件是全局性的数据,需要在系统中多个地方进行读取和写入,使用单例模式可以方便地管理配置文件; 2、 日志系统:由于日志是全局性的数据,需要在系统中多个地方进行记录,使用单例模式可以方便地管理日志; 3、 数据库连接池:由于数据库连接是资源消耗较大的对象,需要进行复用,使用单例模式可以实现数据库连接池的管理; 4、 线程池:由于线程是资源消耗较大的对象,需要进行复用,使用单例模式可以实现线程池的管理; 5、 网站计数器、生成全局唯一序列号等; ### **代码实现(最简)** ```python import threading class Singleton: __instance = None # 定义类睡醒,保存实例对象 __lock = threading.Lock() # 定义一个线程锁 def __new__(cls, *args, **kwargs): if cls.__instance is None: with cls.__lock: if cls.__instance is None: cls.__instance = super().__new__(cls) return cls.__instance ```
李智
2025年3月17日 13:33
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码