zoukankan      html  css  js  c++  java
  • PHP设计模式之单例模式

    一、简介:

    使得类的一个对象成为系统的唯一实例,不会重复的去创建一个类

    常见的使用单例模式的是:数据库类

    二、三个要点:

    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 是同一个对象。

  • 相关阅读:
    Cannot change version of project facet Dynamic web module to 3.0
    mybatis
    mybatis逆向工程工具
    mybatis和jdbc分析
    分析mybatis和jdbc的作用,已经原理
    JDBC使用步骤
    MyBatis架构设计及源代码分析系列(一):MyBatis架构
    MyBatis的foreach语句详解
    vue.js使用elemnetUi
    vue.js路由嵌套传参
  • 原文地址:https://www.cnblogs.com/dongtong/p/6434230.html
Copyright © 2011-2022 走看看