单例模式的关键点

1、//私有构造函数,防止直接new 创建实例

2、//设置静态成员变量 作保存实例

3、//公有访问实例的静态方法

4、//防止克隆对象的方法

上代码:

//单例模式

class danli

{

//静态成员变量 作保存实例

private static $_instance;

private $config;

//私有构造函数,防止直接new 创建对象

private function __construct($config)

{

$this->config = $config;

echo 'ok';

}

//公有访问实例的静态方法

public static function getInstance($config)

{

if(!(self::$_instance instanceof self))

{

self::$_instance = new self($config);

}

return self::$_instance;

}

//防止克隆对象

public function __clone()

{

trigger_error('Clone is not allow' ,E_USER_ERROR);

}

//测试方法

public function test()

{

echo '调用成功';

echo '<br/>';

echo $this->config;

}

}

//测试

$test = danli::getInstance('设置配置');

$test->test();

php 设计模式之单例模式的更多相关文章

  1. 设计模式之单例模式(Singleton)

    设计模式之单例模式(Singleton) 设计模式是前辈的一些经验总结之后的精髓,学习设计模式可以针对不同的问题给出更加优雅的解答 单例模式可分为俩种:懒汉模式和饿汉模式.俩种模式分别有不同的优势和缺 ...

  2. GJM : C#设计模式(1)——单例模式

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  3. java设计模式之单例模式(几种写法及比较)

    概念: Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例.饿汉式单例.登记式单例. 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自己创建 ...

  4. 每天一个设计模式-4 单例模式(Singleton)

    每天一个设计模式-4 单例模式(Singleton) 1.实际生活的例子 有一天,你的自行车的某个螺丝钉松了,修车铺离你家比较远,而附近的五金店有卖扳手:因此,你决定去五金店买一个扳手,自己把螺丝钉固 ...

  5. 设计模式之单例模式的简单demo

    /* * 设计模式之单例模式的简单demo */ class Single { /* * 创建一个本类对象. * 和get/set方法思想一样,类不能直接调用对象 * 所以用private限制权限 * ...

  6. 设计模式之单例模式——Singleton

                        设计模式之单例模式--Singleton 设计意图: 保证类仅有一个实例,并且可以供应用程序全局使用.为了保证这一点,就需要这个类自己创建自己的对象,并且对外有 ...

  7. 10月27日PHP加载类、设计模式(单例模式和工厂模式)、面向对象的六大原则

    加载类可以使用include.require.require_once三种中的任意一种,每个关键字都有两种方法,但是这种方法的缺点是需要加载多少个php文件,就要写多少个加载类的方法.一般也就需要加载 ...

  8. java 23 - 2 设计模式之单例模式

    单例模式:保证类在内存中只有一个对象. 如何保证类在内存中只有一个对象呢?  A:把构造方法私有  B:在成员位置自己创建一个对象  C:通过一个公共的方法提供访问 单例模式之饿汉式: (一进来就造对 ...

  9. [转]JAVA设计模式之单例模式

    原文地址:http://blog.csdn.net/jason0539/article/details/23297037 概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主 ...

  10. python_way,day8 面向对象【多态、成员--字段 方法 属性、成员修饰符、特殊成员、异常处理、设计模式之单例模式、模块:isinstance、issubclass】

    python_way day8 一.面向对象三大特性: 多态 二.面向对象中的成员 字段.方法属性 三.成员修饰符 四.特殊成员 __init__.__doc__.__call__.__setitem ...

随机推荐

  1. Node.js的安装以及npm的基础使用

    索引: Node.js的安装以及Node.js的模块管理Node.js开发环境搭建以及对ES6的支持Node.js构建Vue.js项目Vue.js单文件组件的开发基于Vue.js的UI组件(Eleme ...

  2. 网易云通过KCSP认证,云原生技术实力再获认可

    近日,网易云通过KCSP认证,正式成为CNCF官方认可的Kubernetes服务提供商,也标志着网易云在云原生领域的技术实力得到了业界认可. Kubernetes是第一个从CNCF毕业的开源项目,凭借 ...

  3. css浮动(float)及清除浮动的几种实用方法

    CSS浮动是现在网页布局中使用最频繁的效果之一,而浮动可以帮我们解决很多问题,那么就让我们一起来看一看如何使用浮动. 一.css浮动(float) (1)html文档流 自窗体自上而下分成一行一行,并 ...

  4. Android Studio 合并分支代码到主干的操作总结

    一.背景 使用SVN进行版本管理时,一般的,我们的所有的开发都是基于trunk进行开发,当一个版本开发告一段落,经验证测试发布上线后,代码处于冻结状态,基于当前冻结的代码库,打一个tag进行管理,与发 ...

  5. Node.js(day1)

    一.什么是Node.js Node.js Everywhere 我们可以从官网的介绍来分析:node中文网 | node引文网 Node.js® 是一个基于 Chrome V8 引擎 的 JavaSc ...

  6. 神经网络架构PYTORCH-前馈神经网络

    首先要熟悉一下怎么使用PyTorch来实现前馈神经网络吧.为了方便理解,我们这里只拿只有一个隐藏层的前馈神经网络来举例: 一个前馈神经网络的源码和注释如下:比较简单,这里就不多介绍了. class N ...

  7. SPA架构的优点和缺点以及一些思考

    SPA是什么? 全称是单页面应用. 一个SPA就是一个WEB应用,它所需的资源(HTML CSS JS等),在一次请求中就加载完成,也就是不需刷新地动态加载. 用术语“单页”就是因为页面在初始化加载后 ...

  8. 性能调优之Mapping

    Mapping层级的调优可能会花费时间,但是性能调优的效果确实非常显著的 优化Target,Source之后,可以调优Mapping 通常的方法是尽可能减少组件及组件的字段间不必要的连线 即尽可能用最 ...

  9. HTML百宝箱(1从0开始)

    标准格式(XHTML) l   元素必须正确嵌套 l   元素必须始终关闭 l   元素名和属性名必须小写 l   文档必须有且仅有一个根元素 l   属性值必须使用双引号括起来 l   声明文档为标 ...

  10. VSCode typescript ctrl+shift+b can't be compiled error:TS5007

    环境: vscode:1.12.2 node 7.4.0 TypeScript:2.3.2 从svn 更新下来,别的电脑环境编译是没问题的,在我的电脑上编译失败并出现以下错误 error TS5007 ...