一、单例模式介绍
单例设计模式是应用开发过程中最简单和最著名的一种创建型设计模式。
1.1 应用场景:
二、单例模式的几种创建方式:
2.1.经典模式创建:
实现单例模式的一个简单方法是,使构造函数私有化,并创建一个静态方法来完成对象的初始化。这样,对象将在第一次调用时创建,此后,这个类将返回同一个对象。
在使用 Python 的时候,我们的实现方式要有所变通,因为它无法创建私有的构造函数。下面,我们一起看看如何利用Python语言来实现单例模式。
在上面的代码中,我们通过覆盖__new__方法(python用来实例化对象的特殊方法)来控制对象的创建。对象s就是由__new__方法创建的。
方法hasattr用于查看对象是否具有属性instance,该属性的作用是检查该类是否已经生成了一个对象。
2.2 懒汉式创建
单例模式的用例之一就是懒汉式实例化。例如,在导入模块的时候,我们可能会无意中创建一个对象,但当时根本用不到它。懒汉式实例化能够确保在实际需要时才创建对象。所以,懒汉式实例化是一种节约资源并仅在需要时才创建它们的方式。
在下面的代码示例中,执行 s= singleton()的时候,它会调用 init 方法但没有新的对象被创建。然而,实际的对象创建发生在调用 singleton.getInstance()的时候,我们正是通过这种方式来实现懒汉式实例化的。
2.3 模块级别的单例模式
默认情况下,所有的模块都是单例,这是由 Python的导入行为所决定的
Python通过下列方式来工作。
2.4 Monostate单例模式(单态)
2.5 单例和元类
2.5.1 什么是元类
2.5.2 自定义元类
2.5.3 基于元类方式的单例创建
三、单例模式的缺点
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。