PHP设计模式
单例模式
单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
//三私一公
class single{
//存放实例;
private static $_instance = null;
//私有的构造方法
private function __construct(){
}
//私有的克隆
private function __clone(){
}
//公有的获取实例的方法
public static function getInstance(){
if(!(self::$instance instanceof single)){
self::$_instance = new single;
}
return self::$_instance;
}
}
$single = single::getInstance();
工厂模式
一个类通过本身的静态方法来,实例化一个类并返回一个实例对象;
<?php
interface mysql{
public function connect();
}
// mysqli
class mysqli1 implements mysql(){
public function connect(){
echo "mysqli";
}
}
// pdo
class pdo2 implements mysql(){
public function connect(){
echo "pdo";
}
}
class SimpleFactoty{
static function createMysql(){
return new mysqli1;
}
static function createPdo2(){
return new pdo2;
}
}
$mysql = SimpleFactoty::createMysql();
$mysql->connect();
$pdo = SimpleFactoty::createPdo2();
$pdo->connect();