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

    单例模式又称为职责模式,它用来在程序中创建一个单一功能的访问点,通俗地说就是实例化出来的对象是唯一的。
    所有的单例模式至少拥有以下三种公共元素:
    1. 它们必须拥有一个构造函数,并且必须被标记为private
    2. 它们拥有一个保存类的实例的静态成员变量
    3. 它们拥有一个访问这个实例的公共的静态方法
    单例类不能再其它类中直接实例化,只能被其自身实例化。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。

    代码实现:

    <?php

    class 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!';
    }
    }

    ?>

    单例模式的优缺点:

    优点:

    1. 改进系统的设计

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

    缺点:

    1. 难于调试

    2. 隐藏的依赖关系

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

  • 相关阅读:
    Java中hashCode() 和 equals()
    【转】Java操作Excel竟然这么简单!
    SpringMVC上
    网络基础知识(2)
    网络基础知识 (1)
    线程的安全
    多线程
    字符编码ANSI和ASCII区别、Unicode和UTF-8区别
    序列化对象
    IO流_File类
  • 原文地址:https://www.cnblogs.com/shixiuxian/p/8184459.html
Copyright © 2011-2022 走看看