php设计模式之单例模式用法经典示例分析

这篇文章主要介绍了php设计模式之单例模式用法,结合具体实例形式分析了php单例模式的概念、原理、定义及使用方法,需要的朋友可以参考下。

本文实例讲述了php设计模式之单例模式用法,分享给大家供大家参考,具体如下:

  1. <?php
  2. /**
  3. * @desc 单例模式
  4. * 目的:防止过多的new对象和clone对象,没有对象的时候new对象并缓存,始终保持都是同一个对象实例
  5. * 特点:php的单例是进程中的单例,而不像java属于内存中的单例
  6. * **/
  7. class single{
  8. protected static $ins = null;//声明一个静态变量,用来存储类的实例
  9. private $name;//声明一个私有的实例变量
  10. /**
  11. * 私有化构造方法,防止不断的创建对象
  12. * **/
  13. private function __construct(){
  14. }
  15. public static function getIns(){
  16. if(self::$ins===null){
  17. self::$ins = new self();
  18. }
  19. return self::$ins;
  20. }
  21. public function setName($name){
  22. $this->name = $name;
  23. }
  24. public function getName(){
  25. return $this->name;
  26. }
  27. }
  28. $single1 = single::getIns();
  29. $single2 = single::getIns();
  30. $single1->setName('hello world!');
  31. $single2->setName('hello php!');
  32. echo $single1->getName();//输出结果:hello php!
  33. echo "<br/>":
  34. echo $single2->getName();//输出结果:hello php!
  35. /***
  36. * 分析:输出的结果都是hello php!
  37. * 采用了单例模式对象$single1与$single2是等价的,因此对象$single1与$single2都在设置类的变量时指向都是一致的,变量值取对象设置的最新的一个值
  38. * **/
  39. 运行结果:
  40. hello php!
  41. hello php!