仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1011|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网页编程之PHP单例形式的中心思惟

[复制链接]
乐观 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:35:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
掌握静态网页的制作技术是学习开发网站的先决条件,这一点就讲到这里,因为这篇文章不是教程文章,也就不对技术进行深入的刨析了。   <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:02 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
谁可相欹 该用户已被删除
板凳
发表于 2015-2-11 05:32:24 | 只看该作者
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
兰色精灵 该用户已被删除
地板
发表于 2015-3-1 21:53:17 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
分手快乐 该用户已被删除
5#
发表于 2015-3-4 07:05:55 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
不帅 该用户已被删除
6#
发表于 2015-3-5 14:46:19 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
透明 该用户已被删除
7#
发表于 2015-3-12 08:07:02 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
若相依 该用户已被删除
8#
发表于 2015-3-15 10:14:39 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
再现理想 该用户已被删除
9#
发表于 2015-3-22 00:08:00 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
简单生活 该用户已被删除
10#
发表于 2015-3-27 04:10:49 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
爱飞 该用户已被删除
11#
发表于 2015-4-3 01:22:23 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
柔情似水 该用户已被删除
12#
发表于 2015-4-5 01:21:47 | 只看该作者
爱上php,他也会爱上你。
愤怒的大鸟 该用户已被删除
13#
发表于 2015-4-5 22:55:43 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
蒙在股里 该用户已被删除
14#
发表于 2015-4-6 05:09:57 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
admin 该用户已被删除
15#
发表于 2015-4-6 13:02:09 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
山那边是海 该用户已被删除
16#
发表于 2015-4-8 15:43:36 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
飘飘悠悠 该用户已被删除
17#
发表于 2015-4-17 18:57:57 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
莫相离 该用户已被删除
18#
发表于 2015-4-24 00:32:08 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
老尸 该用户已被删除
19#
发表于 2015-4-25 13:01:28 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
海妖 该用户已被删除
20#
发表于 2015-4-26 06:10:56 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-21 14:42

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表