• 单例模式


     1 <?php
     2 
     3 class Singleton
     4 {
     5     private static $_instance;
     6 
     7     /**
     8      * 构造函数私有,不允许在外部实例化
     9      */
    10     private function __construct()
    11     {
    12 
    13     }
    14 
    15     /**
    16      * 防止对象实例被克隆
    17      */
    18     private function __clone()
    19     {
    20 
    21     }
    22 
    23     /**
    24      * 防止被反序列化
    25      */
    26     private function __wakeup()
    27     {
    28 
    29     }
    30 
    31     public static function getInstance()
    32     {
    33         if (!self::$_instance instanceof self) {
    34             self::$_instance = new Singleton();
    35         }
    36 
    37         return self::$_instance;
    38     }
    39 
    40     public function test()
    41     {
    42         echo "This is test";
    43     }
    44 }
    45 
    46 
    47 $a = Singleton::getInstance();
    48 
    49 echo gettype($a);
    50 echo "<br/>";
    51 $a->test();
    52 
    53 // $b = clone $a;
    54 // $c = new Singleton();
    55  
    56 $d = serialize($a);
    57 $e = unserialize($d);
    View Code
  • 相关阅读:
    相关术语随笔
    JDK简介和mac下安装和查看版本命令
    英语
    英语学习2
    英语学习-19.1
    为什么java是只有值传递而没有引用传递
    线程
    关于同步异步

    jdk动态代理实现原理总结
  • 原文地址:https://www.cnblogs.com/hangtt/p/6255743.html
Copyright © 2020-2023  润新知