单例模式
单例模式singleton,是一种类的设计最多只能产生一个对象的设计思想
首先定义一个空类,叫做singleton
总结:单例模式就是最多只能得到一个对象
私有化方法:静止在类外无限实例化(new)对象
私有化克隆方法:静止对象无限克隆
私有化静态属性:保存类内部实例化得到的对象
公有化静态方法:允许外部通过待用类内部的方法获取对象
<?php
//单例模式
class singleton{
//静态属性,保存生产出来的对象
private static $object = null;
//私有化构造方法
private function __construct(){
echo __METHOD__;
}
//类入口,允许进入类的内部
public static function getInstance(){
//判定静态属性是否存在当前类的对象
if(!self::$object instanceof self){
//当前保存的object数据不是singleton对象
//产生对象
self::$object = new self();
}
//返回对象
return self::$object;
}
//私有化克隆
private function __clone(){}
}
//实例化
// $s1 = new singleton;
// $s2 = new singleton;
//静态方法进入类内部
$s = singleton::getInstance();
$s1 = singleton::getInstance();
var_dump($s,$s1);
// 克隆对象会产生新的对象,必须禁止克隆,可以通过私有化克隆方法解决
// $s2 = clone $s;
// var_dump($s2);
?>
工厂模式
由一个地方产生对象,其他位置不需要二外实例化对象,从而可以方便后期代码的统一维护,而工厂模式下可