一直以来都是在写项目却从来没有仔细分析过什么是单例模式,单例模式分为几种,单例模式有什么特点。今天随便记录一个随笔,全当是复习复习做个笔记。
单例模式要确保某个类只有一个实例,而且自动实例化并向整个系统提供实例。单例模式分为3种:饿汉单例模式、懒汉单例模式、登记式单例模式。
单例模式有3个特点:
- 只有一个实例
- 必须自行创建这个实例
- 必须给其他对象提供这个实例
-
腾讯云最新服务器活动--云服务器免费送。
单例模式常被应用到数据库连接,这种耗费资源的操作。类的结构分为3私1公/4私1公。下面就编写一个简单的单例模式:
1 <?php
2
3 class db {
4
5 private $config = 1;
6
7 //私有的静态变量,默认值为null
8 private static $instance = null;
9
10 /**
11 * 私有构造方法
12 * 防止多个实例
13 */
14 private function __construct($config) {
15 echo '我是私有构造方法<br>';
16 }
17
18 /**
19 * 私有克隆方法
20 * 防止多个实例
21 */
22 private function __clone() {
23
24 }
25
26 /**
27 * 防止反序列化
28 */
29 private function __wakeup() {
30
31 }
32
33 /**
34 * 公有静态方法
35 * 判断$instance是否实例化,存在实例化对象