一、单例模式
核心:确保只有一个实例,并提供全局访问 (注意:全局变量不是单例模式)
在单例模式的实现过程中,须要留神如下三点:
- 单例类的构造函数为公有
- 提供一个本身的动态公有成员变量
- 提供一个私有的动态工厂办法
二、实现思路
一般情况下,当我们创建了一个类(本质是构造函数)后,可以通过new关键字调用构造函数进而生成任意多的实例对象。像这样:
我们先 new 了一个 s1,又 new 了一个 s2,很明显 s1 和 s2 之间没有任何瓜葛,两者是相互独立的对象,各占一块内存空间。而单例模式想要做到的是,不管我们尝试去创建多少次,它都只给你返回第一次所创建的那唯一的一个实例。
要做到这一点,就需要构造函数具备判断自己是否已经创建过一个实例的能力。我们现在把这段判断逻辑写成一个静态方法(其实也可以直接写入构造函数的函数体里):
三、简单 demo
简单的一个类似垃圾小广告的弹框,部分代码如下:<