标签:对比 测试 单例模式 pac cti ima clone 实例化 public
三私一公:
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 = \app\Database::getInstance()->test(); echo $res;
最后附上我的目录结构,方便对比命名空间
到此完成了
标签:对比 测试 单例模式 pac cti ima clone 实例化 public
原文地址:https://www.cnblogs.com/waterliang/p/12158849.html