单例模式
Posted waterliang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例模式相关的知识,希望对你有一定的参考价值。
三私一公:
1. 私有化属性
2. 私有化构造方法
3. 私有化克隆方法
4. 公有化静态方法,供外部调用
单例类:
<?php namespace app; class Database { /** * 私有化静态属性 */ private static $db; /** * 私有化构造方法 * Database constructor. */ private function __construct(){} /** * 私有克隆方法 * Database constructor. */ private function __clone(){} /** * 公有化静态方法 */ static public function getInstance() { if (! self::$db) { // 实例化自身,并且保存在属性中 self::$db = new self(); } return self::$db; } /** * 测试方法,这里只能是public */ public function test() { return "测试成功"; } }
在需要用到该类的地方用一下方法调用
<?php spl_autoload_register(function ($class) { include $class . ‘.php‘; }); // 单例中的方法只能通过getInstance这个静态属性来调用 $res = appDatabase::getInstance()->test(); echo $res;
最后附上我的目录结构,方便对比命名空间
到此完成了
以上是关于单例模式的主要内容,如果未能解决你的问题,请参考以下文章