多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[toc] ## 举个例子 > 1950年后, 中国实行一夫一妻制. 爱情具有排他性. ## 代码示例 ```php <?php class MyBeautifulGirl { private static $instance = null; //私有化构造方法 public function __construct() { echo "我遇到一个女孩" . PHP_EOL; } //私有化克隆方法 private function __clone() { } public static function getInstance() { if (!(self::$instance instanceof MyBeautifulGirl)) { self::$instance = new MyBeautifulGirl(); } return self::$instance; } } $lucy = new MyBeautifulGirl(); $lily = new MyBeautifulGirl(); echo $lucy === $lily ? "我的真爱!!" : "我移情别恋了!" . PHP_EOL; $meimei = MyBeautifulGirl::getInstance(); $kitty = MyBeautifulGirl::getInstance(); echo $meimei === $kitty ? "我的真爱!!" : "我移情别恋了!" . PHP_EOL; ``` ``` D:\soft\php72\php.exe D:\project\php_dp\index.php 我遇到一个女孩 我遇到一个女孩 我移情别恋了! 我遇到一个女孩 我的真爱!! Process finished with exit code 0 ``` ## 什么是单例模式? > 确保一个类只有一个实例,并且提供一个访问它的全局方法。 > 人如果脚踏两只船,你的生活将会翻船! > 程序中的部分关键类如果有多个实例,将容易使逻辑混乱,程序崩溃! ![](https://box.kancloud.cn/e3bc6bd7fc2f808768dddc7176a63a6c_231x187.png) ## 应用场景 1. 你希望这个类只有一个且只能有一个实例; 1. 项目中的一些全局管理类(Manager)可以用单例来实现。