php单态设计模式(单例模式)实例

yipeiwu_com5年前PHP代码库

单态设计模式也叫单例模式:

1.单态设计模式含义:

单态模式的主要作用是保证在面向对象编程设计中,一个类只能有一个实例对象存在。作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。

2.单台模式的三个关键点:

① 需要一个保存类的唯一实例的静态成员变量;
②构造函数和克隆函数必须声明为私有的,防止外部程序new类从而失去单例模式的意义;
③必须提供一个访问这个实例的公共的静态方法(通常为getInstance方法),从而返回唯一实例的一个引用 。

复制代码 代码如下:

<?php
class DB {
    private static $obj = null;           //声明一个私有的,静态的成员属性$obj
    private function__construct() {       //私有构造方法,只能在类的内部实例化对象
        echo "连接数据库成功<br>";
    }
    public static function getInstance() {  // 通过此静态方法才能获取本类的对象
        if(is_null(self::$obj))  //如果本类中的$obj为空,说明还没有被实例化过
            self::$obj = new self();  //实例化本类对象
            return self::$obj;  //返回本类的对象
    }
    public function query($sql) {  //执行SQL语句完成对数据库的操作
        echo $sql;
    }
}
    $db = DB::getInstance();        //只能使用静态方法getInstance()去获取DB类的对象
    $db -> query("select *from user");       //访问对象中的成员
?>

相关文章

PHP中使用Imagick实现各种图片效果实例

imagick是一个功能强大的图像处理库。  说是翻译 其实就是简要介绍imagick 的主要功能的或者说是我觉得比较实用的功能函数的介绍 以及使用的例子。  因...

php以fastCGI的方式运行时文件系统权限问题及解决方法

php以fastCGI的方式运行时文件系统权限问题及解决方法

今天准备将一个php demo放在IIS下运行,网站在IIS下的配置是这样的: 应用程序池是集成模式下的.net framework 2.0(2.0或4.0没什么关系,因为php以fas...

详解WordPress开发中wp_title()函数的用法

wp_title 函数在 WordPress 中是用来显示文章、页面、分类等等等等标题的一个函数,但在首页索引,该函数将不显示任何的东西。该函数在 WordPress 官方主题中一直被使...

PHP对象实例化单例方法

PHP实例化对象单例的方法: 三私一公:2个私有方法,1个私有属性,1个公共方法   private function __construct(){} //不可以继承构造方法   p...

又一个php 分页类实现代码

复制代码 代码如下:<?php function genpage(&$sql,$page_size=10) { global $pages,$sums,$eachpage,$pag...