PHP教程PHP网络上关于设计模式一些总结.pdfVIP

PHP教程PHP网络上关于设计模式一些总结.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PHP教程PHP网络上关于设计模式一些总结

PHP教程PHP 网络上关于设计模式一些总结 1.单例模式 单例模式顾名思义,就是只有一个实例。作为对象的创建模式, 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统 提供这个实例。 单例模式的要点有三个: 一是某个类只能有一个实例; 二是它必须自行创建这个实例; 三是它必须自行向整个系统提供这个实例。 为什么要使用PHP单例模式?兄弟连PHP培训: 1. php 的应用主要在于数据库应用, 一个应用中会存在大量的 数据库操作, 在使用面向对象的方式开发时, 如果使用单例模式, 则可以避免大量的new 操作消耗的资源,还可以减少数据库连接这样 就不容易出现 too many connections情况。 2. 如果系统中需要有一个类来全局控制某些配置信息, 那么使 用单例模式可以很方便的实现. 这个可以参看zend Framework的 FrontController部分。 3. 在一次页面请求中, 便于进行调试, 因为所有的代码(例如 数据库操作类db)都集中在一个类中, 我们可以在类中设置钩子, 输 出日志,从而避免到处var_dump, echo。 例子: /** * 设计模式之单例模式 * $_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; 2.简单工厂模式 ①抽象基类:类中定义抽象一些方法,用以在子类中实现 ②继承自抽象基类的子类:实现基类中的抽象方法 ③工厂类:用以实例化所有相对应的子类 /** * * 定义个抽象的类,让子类去继承实现它

文档评论(0)

aena45 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档