一、工厂模式:个人总结 class Factory
{
static function createObject($par)
{
if ($par == 1) {
$test1 = new Object1();
} elseif ($par == 2) {
$test2 = new Object2();
} else {
$test3 = new Object3();
}
}
}
// 在另外一个类中调用
class Test
{
//工厂模式,根据不同的参数,new出不同的对象
Factory::createObject(1);
Factory::createObject(2);
Factory::createObject(3);
} 二、单利模式
实现单例的条件:三私一公
三私:私有化构造方法:不让外部创建对象
私有化克隆方法:不让外部克隆对象
私有静态属性:保存已经产生的对象
一公:公共静态方法:在类内部创建对象
实例:
php//单例模式:一个类只能创造一个对象class Single{//属性private $name;public static $counts = 0;//定义一个静态属性来保存对象private static $single;//私有化构造方法private function __construct($name){$this->name = $name;//计数self::$counts++;}//私有化克隆方法private function __clone(){//计数self::$counts++;}//静态方法,让类进入到类的内部进行实例化得到对象public static function getInstance($name){//判断对象是否已经存在,如果存在则直接返回原来对象,否则创造新对象if(self::$single){//对象已经存在,返回原来对象}else{//对象不存在self::$single = new Single($name);}//返回对象return self::$single;}}//实例化//$single = new Single('林志炫');//访问类对象数量//echo Single::$counts;//得到对象$single = Single::getInstance('马云');var_dump($single);//访问类对象数量echo Single::$counts;//得到对象$single = Single::getInstance('马化腾');var_dump($single);//访问类对象数量echo Single::$counts;
优点:只能创建一个对象,可节省内存资源