PHP设计模式-单例模式

来源:互联网 发布:mac帝国时代能联机吗 编辑:程序博客网 时间:2024/06/02 04:47

1、模式定义

单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。

单例模式是一种常见的设计模式,在计算机系统中,线程池、缓存、日志对象、对话框、打印机、数据库操作、显卡的驱动程序常被设计成单例。

2、UML类图

单例模式类图


3、示例代码

<?phpclass User {    //静态变量保存全局实例    private static $_instance = null;    //私有构造函数,防止外界实例化对象    private function __construct() {    }    //私有克隆函数,防止外办克隆对象    private function __clone() {    }    //静态方法,单例统一访问入口    static public function getInstance() {        if (is_null ( self::$_instance ) || isset ( self::$_instance )) {            self::$_instance = new self ();        }        return self::$_instance;    }    public function getName() {        echo 'hello world!';    }}?>

4、优缺点

优点:

1. 改进系统的设计

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

缺点:

1. 难于调试

2. 隐藏的依赖关系

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



0 0
原创粉丝点击