zoukankan      html  css  js  c++  java
  • php 简单的 单例模式

    php单例模式简单说明

    使用注意事项: 
        1.使用时不能用反射模式创建单例,否则会实例化一个新的对象 
        2.使用懒单例模式时注意线程安全问题 
        3.饿单例模式和懒单例模式构造方法都是私有的,因而是不能被继承的,有些单例模式可以被继承(如登记式模式) 
    <?php
    /**
     * Created by PhpStorm.
     * auther: sgj
     * Date: 2019/9/5
     * Time: 20:58
     */
    /*
      1.单例模式只能通过自身进行实例化
      2.拥有一个保存对象实例的静态成员变量
      3.拥有一个访问这个实例的公共静态方法(常用getInstance()方法进行实例化单例类 )
      4.通过instanceof操作符可以检测到类是否已经实例化了
      */
    class single
    {
        /**
         * 私有构造函数
         * single constructor.
         */
        private function __construct()
        {
    
        }
    
        /**
         * 私有的构造函数防止克隆
         */
        private function __clone()
        {
            // TODO: Implement __clone() method.
        }
    
        /*存储实例的静态方法*/
        private static $interion;
    
        /**
         * 通过这个来获取实例
         * @return single
         */
        public function getInstance(){
            if (empty($interion)){
                self::$interion=new single();
            }
            return self::$interion;
        }
    
    }
      1.单例模式只能通过自身进行实例化
      2.拥有一个保存对象实例的静态成员变量
      3.拥有一个访问这个实例的公共静态方法(常用getInstance()方法进行实例化单例类 )
      4.通过instanceof操作符可以检测到类是否已经实例化了

    单例模式的优点: 

    一个php进程只会实例化出一个单例 ,减少了内存占用减少资源占用。比如说你的调整了php的进程数,随着php进程数的增加需要注意到mysql连接数的数量。因为php mysql采用了单例模式,你的PHP进程数就是mysql的连接数。(此时也需要注意你的mysql连接数必须大于
    你php的进程数,否则就等待mysql 释放连接 导致等待从而导致多米诺似的系统崩溃)

    单例模式的缺点:

    没有抽象层难以扩展 不适合变化性较强的实例单例类的职责过重,在一定程度上违背了“单一职责原则”。




  • 相关阅读:
    如何在调试PHP代码时不显示错误信息
    如何实现网页组件的随意拖拽
    如何做一个简易的HTML代码编辑器
    如何在网页中动态显示时间
    Luogu2577 | [ZJOI2005]午餐 (贪心+DP)
    Luogu2345 | 奶牛集会 (树状数组)
    解决NahimicSvc32.exe与bilibili直播姬的音频不兼容的问题
    STL函数 lower_bound 和 upper_bound 在算法竞赛中的用法
    电子取证 | 第三届美亚杯(2017)个人赛题解
    快速安装字体.bat批处理脚本
  • 原文地址:https://www.cnblogs.com/sgj123/p/11470097.html
Copyright © 2011-2022 走看看