PHP设计模式之单例模式
2017-02-23 16:48
453 查看
一、简介:
使得类的一个对象成为系统的唯一实例,不会重复的去创建一个类
常见的使用单例模式的是:数据库类
二、三个要点:
1、单例模式的类只提供私有的构造函数 : private function __construct()
2、类定义中含有一个该类的静态私有对象: private static $instance=null;
3、提供了一个静态的公有的函数用于创建或获取它本身的静态私有对象: public static function getInstance()
三、简单PHP代码demo:
四、测试代码:
可以看出第二次的name值也变成了‘李四’ 说明single1 和single2 是同一个对象。
使得类的一个对象成为系统的唯一实例,不会重复的去创建一个类
常见的使用单例模式的是:数据库类
二、三个要点:
1、单例模式的类只提供私有的构造函数 : private function __construct()
2、类定义中含有一个该类的静态私有对象: private static $instance=null;
3、提供了一个静态的公有的函数用于创建或获取它本身的静态私有对象: public static function getInstance()
三、简单PHP代码demo:
<?php /** * Singleton pattern with php 单例模式 * User: DongJuntong * Date: 2017/2/9 * Time: 18:21 */ class Singleton { private static $instance=null; public $name=''; private function __construct() { } private function __clone() { } public static function getInstance() { if(empty(self::$instance)) { self::$instance=new Singleton(); } return self::$instance; } }
四、测试代码:
$single1=Singleton::getInstance(); $single1->name='张三'; echo "name值为:{$single1->age}<br/>";// 张三 $single2=Singleton::getInstance(); $single2->name='李四'; echo "name值为:{$single1->age}<br/>";//李四 echo "name值为:{$single2->age}<br/>";//李四
可以看出第二次的name值也变成了‘李四’ 说明single1 和single2 是同一个对象。
相关文章推荐
- 一种PHP设计模式:DPT
- 架构师常用的五种 PHP 设计模式
- [介绍]PHP设计模式:DAO(数据访问对象模式)
- 五种常见的 PHP 设计模式
- php设计模式介绍之值对象模式第1/5页
- 一种PHP设计模式:DPT
- 介绍php设计模式中的工厂模式
- 一种PHP设计模式:DPT
- 一种PHP设计模式:DPT
- [PHP设计模式]Composite(组合)模式范例
- [转]五种常见的PHP设计模式
- 五种常见的PHP设计模式
- 五种常见的PHP设计模式(择自互联网非本人所写)
- [转]五种常见的PHP设计模式
- 五种常见的 PHP 设计模式
- [介绍]PHP设计模式:DAO(数据访问对象模式)
- 五种常见的PHP设计模式
- php设计模式-中级
- php设计模式介绍之编程惯用法第1/3页
- 介绍php设计模式中的工厂模式