1.单例模式就是设计的类最多只能得到一个对象
2.单例模式的设计规范是“三私一公”
私有化构造方法: 禁止在类的外部无限实例化对象
私有化克隆方法: 禁止对象无限克隆对象
私有化静态属性: 保存类内部实例化得到的对象 (防止被外部更改)
公有化静态方法: 允许外部通过调用类内部方法获取对象
该方法内大致逻辑 获取静态属性,验证是否已经实例化为当前类对象,如果实例化则返回该属性,如果未实例化则 new self();赋值给该属性并返回
3.单例模式如果还有其他诉求,可以在类中增加相应的其他类成员(方法)
4.单例模式的目的是为了保护资源的唯一性
demo
<?php class demo { //私有化静态属性 private static $obj = null; //私有化构造方法,防止外部实例化 private function __construct(){} //共有获取实例方法 public static function getInstance() { if(self::$obj instanceof demo){ return self::$obj; }else{ self::$obj=new self(); return self::$obj; } } //私有化克隆方法,防止外部克隆实例 private function __clone(){} } $demo=demo::getInstance(); $demo1=demo::getInstance(); var_dump($demo); var_dump($demo1); //object(demo)#1 (0) { } object(demo)#1 (0) { }
下一篇: php 面向对象工厂模式记录...