加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php 设计模式之单例模式实例

发布时间:2023-09-16 14:40:33 所属栏目:PHP教程 来源:
导读:单例模式这个东西我相信有许多的朋友都不了解了,今天既然有学习到单例模式我就给各位整理一些小编学习用到的参考内容供各位学习。

1.定义

单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局
单例模式这个东西我相信有许多的朋友都不了解了,今天既然有学习到单例模式我就给各位整理一些小编学习用到的参考内容供各位学习。

1.定义

单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。

2.解决的问题/使用场景

在数据库应用方面,使用单例模式,可以避免大量的new操作消耗的资源。
如果在系统中需要一个类来全局控制某些配置信息,那么使用单例模式可以很方便的实现。

3.实现单例模式的要点

需要一个保存类的唯一实例的静态成员变量。

构造函数和克隆函数必须声明为私有的,防止外部程序new类从而失去单例模式的意义。

需要提供一个访问这个实例的静态方法(一般为getInstance方法),返回实例的引用。

4.实现代码示例

<?php 
 
class Singleton 
 

 
    private static $instance; 
 
    private $conn; 
 
    private function __construct() 
 
    { 
 
        $this->conn = mysql_connect(...); 
 
    } 
 
    private function __clone() 
 
    { 
 
    } 
 
    public static function GetInstance() 
 
    { 
 
        if (!(self::$instance instanceof self)) 
 
        { 
 
            slef::$instance = new self(); 
 
        } 
 
        return self::$instance; 
//Cuoxin.com 
    } 
 
    public function GetDbConnect() 
 
    { 
 
        return $this->conn; 
 
    } 
 
    public function selectData($sql) 
 
    { 
 
        // $result mysql_query($sql,$this->conn); 
 
        // while mysql_fetch_array($result).... 
 
    } 
 

 
$db = Singleton::GetInstance(); 
 
$db->selectData("select * from user"); 
?> 

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章