php设计模式:(一)、单例模式

php设计模式:(一)、单例模式_php_web-itnose

首页
asp
php
javascript
iis
apache
html/css
coldfusion
ajax
vbscript
cgi
xml/xsl
跨浏览器开发
ruby/rails
程序员
html5
jquery
seo
jboss
json
angularjs
markdown
nginx
thinkphp
yii
pageadmin
extjs
wampserver
kendo ui
coffeescript
gulp
ecmascript
bootstrap

itnose首页 > web > php >

php设计模式:(一)、单例模式

2017-06-14 18:08

一、设计模式概述:

设计模式是什么?初学者一开始会被这高大上的名称给唬住。而对于有丰富编程经验的老鸟来说,模式设计又是无处不在。很多接触的框架就是基于各种模式设计形成的。 简单说,在写代码的过程中一开始往往接触的是面向过程的,简单的基础的编程。这个时候我们往往追求的是代码能够实现某项功能就万事大吉。管他代码多么冗余,管他代码是否可重用,管他效率如何,能实现功能就好。但是,真正应用于实际的,更被大家采纳的是那些高效的,可重用的,便于团队开发的代码。基于这些因素,你不能像练手一样,随便命名函数名,随便放置脚本。设计模式告诉是给人们组织代码提供一种思路,实现可重用代码、让代码更容易被他人理解、保证代码可靠性。

二、单例模式

1、什么是单例模式?

单例模式顾名思义,就是只有一个实例。作为对象的创建模式, 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。

2、特点:

1.一是某个类只能有一个实例;

2.二是它必须自行创建这个实例;

3.三是它必须自行向整个系统提供这个实例。

3、常见应用

php常常和数据库打交道,如果在应用中如果频繁建立连接对象,进行new操作的话,会消耗大料的系统内存资源,这并不是我们希望看到的。再则,在团队合作项目中,单例模式可以有效避免不同程序员new自己的对象,造成人为的系统消耗。

三、实例

/**

设计模式之单例模式

$_instance必须声明为静态的私有变量

构造函数必须声明为私有,防止外部程序new类从而失去单例模式的意义

getinstance()方法必须设置为公有的,必须调用此方法以返回实例的一个引用

::操作符只能访问静态变量和静态函数

new对象都会消耗内存

使用场景:最常用的地方是数据库连接。

使用单例模式生成一个对象后,该对象可以被其它众多对象所使用。

*/

class man

{

//保存例实例在此属性中

private static $_instance;

//构造函数声明为private,防止直接创建对象

private function __construct()

{

echo ‘我被实例化了!’;

}

//单例方法

public static function get_instance()

{

var_dump(isset(self::$_instance));

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

{

self::$_instance=new self();

}

return self::$_instance;

}

//阻止用户复制对象实例

private function __clone()

{

trigger_error(‘clone is not allow’ ,e_user_error);

}

function test()

{

echo(“test”);

}

}

// 这个写法会出错,因为构造方法被声明为private

//$test = new man;

// 下面将得到example类的单例对象

$test = man::get_instance();

$test = man::get_instance();

$test->test();

// 复制对象将导致一个e_user_error.

//$test_clone = clone $test;

总结:

本身单例模式并不复杂,但需要深入理解。不管构造方法被申明为public,private还是protected,最终创建对象的时候都会调用。一直是new创建对象实例,单例模式也用new创建对象,只是换个地方而已,从类外到类内本文由甲爪cpa联盟平台(http://www.jiazhua.com)整理编辑!转载请注明!

相关搜索:
.net设计模式
ejb设计模式
c++设计模式
c++工厂模式
hibernate 一对一

相关文章

2017-04-21 22:26 php设计模式之单例模式
2017-02-18 11:58 php 设计模式 单例模式(singleton)
2016-12-12 13:15 php设计模式-单例模式
2016-11-14 21:24 php设计模式之单例模式
2016-05-31 21:36 php 设计模式 – 单例模式

更多相关文章>>

最新文章

2017-06-20 01:35 老铁们,有没有可能让php文件同时只能一个人访问
2017-06-20 01:35 怎么禁止图片直接通过url访问
2017-06-20 01:35 求救!启动wamp只能用本机访问,同局域网的其它设备访问不到!搞了大半天t-t
2017-06-19 15:35 nginx下的thinkphp问题
2017-06-19 15:35 php form 文件上传

更多最新文章>>

热门搜索

一张图表
php jsp
php webservice
php 图表
php xml
delphi for php
delphi php
php sqlserver
javaweb开发实战1200例
java web开发实战1200例
asp.net开发实战1200例
hibernate一对一查询
hibernate 一对多
hibernate一级缓存
hibernate 一级缓存

京icp备14022385号-2

©2014 itnose软件编程教程 | 联系我们:email:twobrushes@126.com qq:35155868

Posted in 未分类

发表评论