php 单例设计模式 example

 1 <?php
 2     
 3 class User {
 4     
 5     //静态变量保存全局变量
 6     private static $_instance=null;
 7     
 8     //私有化构造函数,防止外界实例化对象
 9     private function __construct() {
10     }
11     
12     //私有化克隆,防止外界克隆对象
13     private function __clone(){
14         
15     }
16     //静态方法,单例统一访问接口
17     static public function getInstance(){
18         if(is_null(self::$_instance)||isset(self::$_instance)){
19             self::$_instance= new self();
20         }
21         
22         return self::$_instance;
23     }
24     
25     public function  getName(){
26         echo "猪八戒";
27     }
28 }
29 
30 
31 
32 header("Content-type:text/html;charset=utf-8");
33 $user=User::getInstance();
34 echo $user->getName();

单例模式的优缺点:

优点:

1. 改进系统的设计

2. 是对全局变量的一种改进

缺点:

1. 难于调试

2. 隐藏的依赖关系

3. 无法用错误类型的数据覆写一个单例

原文地址:https://www.cnblogs.com/wujindong/p/5287530.html