单例模式
单例模式能起到什么效果
控制实例数目,节省系统资源。
演示代码
<?php
class NumberControl {
private static $_Control;
private $number = 0;
private function __construct()
{
echo "Running Number Control" . PHP_EOL;
}
public static function getInstance()
{
if(self::$_Control === null)
{
self::$_Control = new self();
}
return self::$_Control;
}
/**
* @return int
*/
public function getNumber(): int
{
return $this->number;
}
/**
* @param int $number
*/
public function setNumber(int $number): void
{
$this->number = $number;
}
}
$firstControl = NumberControl::getInstance();
$firstControl->setNumber(1);
echo $firstControl->getNumber() . PHP_EOL; // 1
$secondControl = NumberControl::getInstance();
echo $secondControl->getNumber() . PHP_EOL; // 1
$secondControl->setNumber(2);
echo $firstControl->getNumber() . PHP_EOL; // 2
echo $secondControl->getNumber() . PHP_EOL; // 2
运行结果
注意
- 单例类只能有一个实例。
- 单例类必须是自己创建自己的唯一实例。
- 单例类的构造方法应该为私有方法,防止外部实例化。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。