单例模式,顾名思义,单个的实例,就是对某个对象,只new一次。单例模式是设计模式常见的一种,用来创建封装好的类的唯一一个实例,这样一来,可以严格控制客户怎么样访问它以及何时访问它,对唯一实例的受控访问。
单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点。
单例模式如何防止一个类被多次new呢?首先,每个类都有一个构造函数,即使没有显式的声明,也是以public存在的,将构造函数设为private。其次,让该类保存实例化后的对象,并提供一个对外的接口。
示例场景:mysql中user表。以PHP为代码环境,来模拟设计模式中的单例模式。

<?php
class UserMysqlModel{
    public function get(){
        echo '获取user表的数据<br>';
    }
    public function set(){
        echo '写入user表的数据<br>';
    }
    public function edit(){
        echo '修改user表的数据<br>';
    }
    public function del(){
        echo '删除user表的数据<br>';
    }
}
class UserBusiness{
    private static $userMysqlModelObj = '';
    private function __construct(){

    }
    public static function getInstance(){
        if(empty(self::$userMysqlModelObj)){
            self::$userMysqlModelObj = new UserMysqlModel();
        }
        return self::$userMysqlModelObj;
    }
}
//客户端/接口
$userBusinessObj = UserBusiness::getInstance()->get();
$userBusinessObj = UserBusiness::getInstance()->set();
$userBusinessObj = UserBusiness::getInstance()->edit();
$userBusinessObj = UserBusiness::getInstance()->del();

标签: PHP, 设计模式, 单例模式

添加新评论