仓酷云

标题: PHP网页编程之PHP单例形式的中心思惟 [打印本页]

作者: 乐观    时间: 2015-2-3 23:35
标题: PHP网页编程之PHP单例形式的中心思惟
掌握静态网页的制作技术是学习开发网站的先决条件,这一点就讲到这里,因为这篇文章不是教程文章,也就不对技术进行深入的刨析了。   <p>Singleton Pattern(中文称单例形式),可以说是最轻易了解的设计形式了,也充实表现了DRY
(Don't Repeat Yourself)的思惟。
单例形式的中心思惟是:包管一个对象存在且仅答应存在一个实例,并供应一个全局会见体例。
单例形式的运作模子是:当对象第一次被恳求时,创立这个对象的实例;以后的每次恳求,仅传递已创立实例的句柄。与单例形式绝对应的形式叫做Prototype(Java平台下)或叫SingleCall(.NET平台下),在此种形式下,每次恳求一个对象,都将新建一个实例。
在WEB法式中使用单例形式的一个典范例子是数据库毗连的创立:经由过程数据库句柄来毗连数据库这一行动是独有的。换言之,在一个句柄还没有封闭之前,你没法第二次创立一个不异称号的句柄。然后在平常编码中,假定你但愿在统一页面中操作由数据库传递回来的多组数据。此时假如采取传统的Prototype体例编程,为了法式的平安运转,你能够需求创立多个数据库链接句柄或反复停止翻开/封闭数据库毗连的操作。明显,如许的操作会招致法式过度损耗一些不用要的资本。
在此场景下,咱们可以应用单例形式来保护和同享统一个数据库句柄。长处有二:
1、进步了法式运转上的平安性。你不用过量的忧虑和思索诸如数据库翻开/封闭的成绩。
2、防止了因创立多个毗连招致的不用要资本华侈。渣滓收受接管机制仅需求对一个链接句柄停止操作。
固然,以上两个成绩关于PHP来讲并非成绩,PHP的渣滓收受接管机制就是:当一个页面履行终了会主动清空一切资本和内存,这外面就包含数据库毗连。
至此,可以总结出Singleton单例形式在WEB法式中的应用场所:
1、某些资本自己具有独有性,你不但愿在多个中央反复创立对这个独有资本对象的实例。
2、你需求在统一个对象的实例的多个援用之间同享这个对象的形态(上面我会将此条划定规矩停止代码举例)。
上面写一段小代码来演示PHP 5中Singleton的完成:
class Singleton
        {
//此成员变量用来纪录此对象的援用次数
private  $counter = 1;
//注重这里是private,即制止内部法式经由过程解析函数实例化对象
private function __construct()
        {
}
//制止克隆这个对象
private function __clone()
        {
}
//必需经由过程此办法失掉对象的援用
public static function getInstance()
        {
   static $instance = null;
   if($instance == null)
          {
    $instance = new Singleton();
   }
   return $instance;
}
public function getUsedCount()
        {
   return $this->counter++;
}
}然后大吼:别人可以,我为什么就不可以?(是不是有点阎罗教练的味道,默默的确是电影看多了,抽嘴巴是会痛的,各位其实明白这个道理了就行了)
作者: 若天明    时间: 2015-2-4 03:00
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
作者: 谁可相欹    时间: 2015-2-11 05:32
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
作者: 兰色精灵    时间: 2015-3-1 21:53
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者: 分手快乐    时间: 2015-3-4 07:05
基础有没有对学习php没有太大区别,关键是兴趣。
作者: 不帅    时间: 2015-3-5 14:46
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
作者: 透明    时间: 2015-3-12 08:07
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
作者: 若相依    时间: 2015-3-15 10:14
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
作者: 再现理想    时间: 2015-3-22 00:08
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
作者: 简单生活    时间: 2015-3-27 04:10
基础有没有对学习php没有太大区别,关键是兴趣。
作者: 爱飞    时间: 2015-4-3 01:22
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
作者: 柔情似水    时间: 2015-4-5 01:21
爱上php,他也会爱上你。
作者: 愤怒的大鸟    时间: 2015-4-5 22:55
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
作者: 蒙在股里    时间: 2015-4-6 05:09
Ps:以上纯属原创,如有雷同,纯属巧合
作者: admin    时间: 2015-4-6 13:02
兴趣是最好的老师,百度是最好的词典。
作者: 山那边是海    时间: 2015-4-8 15:43
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
作者: 飘飘悠悠    时间: 2015-4-17 18:57
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
作者: 莫相离    时间: 2015-4-24 00:32
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
作者: 老尸    时间: 2015-4-25 13:01
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
作者: 海妖    时间: 2015-4-26 06:10
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2