php单例模式示例分享

单例模式主要使用于数据库的连接, 确保数据库一个类只有一个实例, 并且向整个系统提供这个实例。从而避免new操作消耗资源, 同时避免数据库出现too many connection信息.

要点有三个: 1. 必须只有一个实例。 2. 必须自动创建这个实例。 3. 必须向整个系统提供这个实例。

代码如下:

<?
     class mysql{
        privete static $instance ;//保存实例
         //构造函数声明为private, 防止直接创建对象
        privete function __construct(){
             // 实例化
         }
         //单例方法, 判断是否已经实例化,只实例化一次
         public static function getInstance (){
             if(!isset( self::$instance )){
                self ::$instance = new self();
             }
             return self:: $instance;
         }
         //防止克隆对象
         private function __clone (){
             trigger_error ("not allow to clone.");
         }
         function test(){
             echo "test" ;
         }
     }
     $conn = mysql::getInstance ();
     $conn->test ();
?>

(0)

相关推荐

  • php设计模式之单例模式实例分析

    本文实例讲述了php设计模式之单例模式.分享给大家供大家参考.具体分析如下: 单例模式(职责模式): 简单的说,一个对象(在学习设计模式之前,需要比较了解面向对象思想)只负责一个特定的任务: 单例类: 1.构造函数需要标记为private(访问控制:防止外部代码使用new操作符创建对象),单例类不能在其他类中实例化,只能被其自身实例化: 2.拥有一个保存类的实例的静态成员变量 3.拥有一个访问这个实例的公共的静态方法(常用getInstance()方法进行实例化单例类,通过instanceof操

  • PHP单例模式详细介绍

    单例模式的概念 单例模式是指整个应用中某个类只有一个对象实例的设计模式.具体来说,作为对象的创建方式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局的提供这个实例.它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用. 单例模式的特点 单例模式的主要特点是"三私一公": 需要一个保存类的唯一实例的私有静态成员变量 构造函数必须声明为私有的,防止外部程序new一个对象从而失去单例的意义 克隆函数必须声明为私有的,防止对象被克隆 必须提供一个访问这个实例的公共静态

  • PHP基于单例模式实现的数据库操作基类

    本文实例讲述了PHP基于单例模式实现的数据库操作基类.分享给大家供大家参考,具体如下: 配置文件: <?php $db = array( 'host'=>'localhost', 'user'=>'root', 'password'=>'', 'database'=>'test', ) ?> php 数据库基类: <?php class db { public $conn; public static $sql; public static $instance=n

  • php单例模式的简单实现方法

    php单例模式的简单实现方法 <?php /** * 设计模式之单例模式 * $_instance必须声明为静态的私有变量 * 构造函数和析构函数必须声明为私有,防止外部程序new * 类从而失去单例模式的意义 * getInstance()方法必须设置为公有的,必须调用此方法 * 以返回实例的一个引用 * ::操作符只能访问静态变量和静态函数 * new对象都会消耗内存 * 使用场景:最常用的地方是数据库连接. * 使用单例模式生成一个对象后, * 该对象可以被其它众多对象所使用. */ cl

  • php面向对象值单例模式

    单例模式(职责模式): 简单的说,一个对象(在学习设计模式之前,需要比较了解面向对象思想)只负责一个特定的任务: 单例类: 1.构造函数需要标记为private(访问控制:防止外部代码使用new操作符创建对象),单例类不能在其他类中实例化,只能被其自身实例化: 2.拥有一个保存类的实例的静态成员变量 3.拥有一个访问这个实例的公共的静态方法(常用getInstance()方法进行实例化单例类,通过instanceof操作符可以检测到类是否已经被实例化) 另外,需要创建__clone()方法防止对

  • PHP单例模式是什么 php实现单例模式的方法

    一.什么是单例模式? 1.含义       作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例.它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用. 2.单例模式的三个要点: (1). 需要一个保存类的唯一实例的静态成员变量: private static $_instance;    (2). 构造函数和克隆函数必须声明为私有的,防止外部程序new类从而失去单例模式的意义: private function __construct()

  • php单例模式实现方法分析

    本文实例讲述了php单例模式实现方法.分享给大家供大家参考.具体如下: <?php /** * @copyright 2013 maguowei.com * @author Ma Guowei <imaguowei@gmail.com> */ /** * 单例模式 * Class Single */ class Single { private $name; private static $single; private function __construct() { } public

  • php单例模式示例分享

    单例模式主要使用于数据库的连接, 确保数据库一个类只有一个实例, 并且向整个系统提供这个实例.从而避免new操作消耗资源, 同时避免数据库出现too many connection信息. 要点有三个: 1. 必须只有一个实例. 2. 必须自动创建这个实例. 3. 必须向整个系统提供这个实例. 复制代码 代码如下: <?      class mysql{         privete static $instance ;//保存实例          //构造函数声明为private, 防止直

  • javascript请求servlet实现ajax示例(分享)

    ajax请求是一种无刷新式的用户体验,可以发送GET和POST两种异步请求,现记录如下: GET请求: function sendRequestByGet(){ //定义异步请求对象 var xmlReq; //检测浏览器是否直接支持ajax if(window.XMLHttpRequest){//直接支持ajax xmlReq=new XMLHttpRequest(); }else{//不直接支持ajax xmlReq=new ActiveObject('Microsoft.XMLHTTP')

  • adonet基础示例分享(adonet连接数据库)

    adonet基础示例分享 复制代码 代码如下: using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using Sys

  • java贪心算法初学感悟图解及示例分享

    算法简介 1)贪心算法是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致是最好或者最优的算法 2)贪心算法所得到的结果不一定是最优的结果(有时候会是最优解),但是都是相对近似(接近)最优解的结果. 应用场景 --> 集合覆盖 public class GreedyAlgorithm { public static void main(String[] args) { // 创建广播电台,放入到Map HashMap<String, HashSet<

  • Java设计模式之单例模式示例详解

    目录 0.概述 1.饿汉式 1.1 饿汉式单例实现 1.2 破坏单例的几种情况 1.3 预防单例的破坏 2.枚举饿汉式 2.1 枚举单例实现 2.2 破坏单例 3.懒汉式 4.双检锁懒汉式 5.内部类懒汉式 6.JDK中单例的体现 0.概述 为什么要使用单例模式? 在我们的系统中,有一些对象其实我们只需要一个,比如说:线程池.缓存.对话框.注册表.日志对象.充当打印机.显卡等设备驱动程序的对象.事实上,这一类对象只能有一个实例,如果制造出多个实例就可能会导致一些问题的产生,比如:程序的行为异常.

  • Composition Api封装业务hook思路示例分享

    目录 前序 hook的场景 useGetJobList 共同 思路历程 心得 utils 和 hook 的区别 总结 前序 近期公司的新项目一个小程序,一直想尝试 Vue3 开发项目,苦于自己的驱动力不行,学的零零碎碎的.因此小程序我直接跟项目组长说我要使用 uniapp 的 Vue3 版进行开发.开发中遇到业务场景相同的,就分装了一个hook 来减少代码,易于维护. hook的场景 这种获取列表的需求很常见吧,在我这个小程序中有3处使用到了获取列表的功能.分别是: 我的收藏.已投递岗位.未投递

  • Go 语言单例模式示例详解

    目录 简单单例模式 加锁的单例模式 双check 的单例模式 sync.Once 的单例模式 简单单例模式 单例模式是创建类型的模式,它是为了保证执行期间内只有一个实例.使用 Golang 指针可以很容易的实现单例模式,通过指针保持相同的引用. package singleton type singleton struct{} var instance = &singleton{} func getSingleton() *singleton { return instance } 可以看到整个

  • GO语言操作Elasticsearch示例分享

    目录 Elasticsearch简介 连接Elasticsearch 创建索引 创建model结构体 初始化model 创建索引 搜索数据 创建返回结构体 搜索数据 解析数据 修改数据 单条修改 批量修改 删除数据 单条删除 批量删除 Elasticsearch简介 Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene™ 基础之上. Lucene 可以说是当下最先进.高性能.全功能的搜索引擎库–无论是开源还是私有. 连接Elasticsearch

  • JavaScript实现单例模式实例分享

    传统单例模式 保证一个类仅有一个实例,并提供一个访问它的全局访问点. 实现单例核心思想 无非是用一个变量来标志当前是否已经为某个类创建过对象,如果是,则在下一次获取该类的实例时,直接返回之前创建的对象,接下来我们用JavaScript来强行实现这个思路,请看代码: var Singleton = function( name ){ this.name = name; }; Singleton.prototype.getName = function(){ alert ( this.name );

  • angularJS 中input示例分享

    这里给大家分享一则input指令的使用示例 复制代码 代码如下: <!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> </head> <script src="http://localhost:81/js/jquery.js"> </script> <scri

随机推荐