美文网首页
PHP设计模式之单例模式

PHP设计模式之单例模式

作者: flamez57 | 来源:发表于2018-04-06 00:45 被阅读0次

单例设计模式通常包含以下三点:

· 一个私有的 构造方法;(确保用户无法通过创建对象对其进行实例化)

· 一个公有的 静态的 方法;(负责对其本身进行实例化)

· 一个私有的 静态的 属性;(用于保存仅有的一个实例化对象)

书中自有颜如玉,书中自有黄金屋

基本的单例的示例代码:

class singleExp{

    //用于保存仅有的一个实例化对象

    private static $Instance=NULL;

    //构造方法 使用private 封装后 则只能在类的内部使用new去创建对象

    private function __construct(){};

    //只有通过这个方法才能返回本类中的对象,该方法是静态方法 用类名调用

    public static getInstance(){

       if(self::$Instance instanceof self){ //如果本类中的$Instance为空,说明还没有被实例化过

         self::$Instance=new singleExp(); //实例化本对象

       }

       return self::$Instance;

    }

}

$instance=singleExp::getInstance(); //只能使用静态方法getInstance()去获取singleTon类的对象

书中自有颜如玉,书中自有黄金屋

        所谓的单例设计模式就是一个类只能产生/创建唯一一个对象。

        要编写单态设计模式,就必须让一个类只能实例化一个对象,而要想让一个类只能实例化一个对象,就要先让一个类不能实例化对象。

书中自有颜如玉,书中自有黄金屋

如果需要多次用到单例可如下所示

class singleExp{

    //用于保存仅有的一个实例化对象

    private static $Instance=NULL;

    //构造方法 使用private 封装后 则只能在类的内部使用new去创建对象

    private function __construct(){};

    //只有通过这个方法才能返回本类中的对象,该方法是静态方法 用类名调用

    public static getInstance(){

        $class = get_called_class();

       if(self::$Instance instanceof self){ //如果本类中的$Instance为空,说明还没有被实例化过

         self::$Instance[$class]=new singleExp(); //实例化本对象

       }

       return self::$Instance[$class];

    }

}

$instance=singleExp::getInstance(); //只能使用静态方法getInstance()去获取singleTon类的对象

        加强版的单例用法示例

书中自有颜如玉,书中自有黄金屋

        图片与文章无关,在阅读技术文档的时候欣赏一下美女也是一个不错的选择,希望可以对你有帮助,如果有错误的地方欢迎指正。

相关文章

  • 2018-04-08php实战设计模式

    一、单例模式 单例模式是最经典的设计模式之一,到底什么是单例?单例模式适用场景是什么?单例模式如何设计?php中单...

  • 单例模式

    JAVA设计模式之单例模式 十种常用的设计模式 概念: java中单例模式是一种常见的设计模式,单例模式的写法...

  • JAVA设计模式之单例模式

    JAVA设计模式之单例模式

  • Android 设计模式之简单工厂模式

    设计模式系列文章 Android 设计模式之单例模式 Android 设计模式之Builder模式 Android...

  • php 工厂模式

    承接上篇php模式设计之 单例模式,(虽然好像关系不大)。今天讲述第二种基础的模式设计——工厂模式。 那么何为工厂...

  • 设计模式之单例模式详解

    设计模式之单例模式详解 单例模式写法大全,也许有你不知道的写法 导航 引言 什么是单例? 单例模式作用 单例模式的...

  • iOS模式设计之--创建型:1、单例模式

    iOS模式设计之--1、单例模式

  • ThinkPHP设计模式与Trait技术

    阅读原文 设计模式 单例模式 工厂模式 对象注册树 示例 运行 Trait技术 自 PHP 5.4.0 起,PHP...

  • 单例模式Java篇

    单例设计模式- 饿汉式 单例设计模式 - 懒汉式 单例设计模式 - 懒汉式 - 多线程并发 单例设计模式 - 懒汉...

  • 设计模式学习之单例模式

    设计模式之单例模式 1 什么是单例模式 在维基百科中单例模式定义为 单例模式,也叫单子模式,是一种常用的软件设计模...

网友评论

      本文标题:PHP设计模式之单例模式

      本文链接:https://www.haomeiwen.com/subject/fzhjhftx.html