君网科技

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

    单元素模式(Singleton Pattern)指的是在应用程序的范围内只对指定的类创建一个实例。单元素模式包含的对象只有一个,就是单元素本身。

    单元素模式能够确保某个类只生成一个实例对象,通常该模式中包含一个私有构造方法,用来确保用户无法通过创建对象或者克隆的方式对其进行实例化。除此之外,该模式中还包含一个私有静态属性与公有静态方法。公有静态方法负责对其本身实例化,然后将这个对象存储在私有静态属性中,用来确保只有一个实例被创建。
下面通过一个单元素模式的实例来说明单元素模式的原理,代码如下:

<?php
class Singleton{
    private static$instance=null;                       //私有静态属性instance
  private function__construct(){}                     //私有构造方法__construct()
  public static function getInstance(){                   //公有静态方法getInstance()
    if(self::$instance==null){                     //确保只有一个实例被创建
    return new Singleton();
  }
  return self::$instance;
  }
  public function printString(){                       //公有成员方法printString()
    echo"三扬科技";
  }
}
$class=Singleton::getInstance();                    //获取单元素
$class->printString();
?>

 在上述代码中,私有构造方法__construct()用来确保Singleton类无法通过创建对象或者克隆的方式对其进行实例化,所以Singleton类只能通过公有静态方法getInstance()生成一个该类的实例并且存储在私有静态属性$instance中,此关系可以用下图表示。

运行单元素模式的示例代码后,将得到如下图运行结果。

以上是我们在网站开发过程中遇到的PHP设计模式。

posted on 2021-03-16 22:30  艾维艾  阅读(79)  评论(0)    收藏  举报