class Single
{
public static $_instance; //保存实例的对象
private function __construct() //定义构造方法
{
}
private function __clone() //定义一个空方法防止被外部克隆
{
}
public static function getInstance() //定义一个获取实例对象的方法
{
if (!self::$_instance) {
self::$_instance = new self();
}
return self::$_instance; //返回实例对象
}
public function test() //测试方法
{
echo "单利模式";
}
}
$single = Single::getInstance(); //访问创建实例的方法
$single->test();
/**
* 测试类一
*/
class demo1
{
//定义一个test1方法
public function test1()
{
echo '这是demo1类的test1方法'.PHP_EOL;
}
}
/**
* 测试类二
*/
class demo2
{
//定义一个test2方法
public function test2()
{
echo '这是demo2类的test2方法'.PHP_EOL;
}
}
/**
* 工厂类
*/
class Factoty
{
// 静态方法用于创建demo1对象
static function createDemo1()
{
return new demo1();
}
// 静态方法用于创建demo2对象
static function createDemo2()
{
return new demo2();
}
}
/**
* 调用工厂类里面的各各静态方法来创建对应的实例对象
*/
$demo1 = Factoty::createDemo1();
$demo1->test1(); //输出这是demo1类的test1方法
$demo2 = Factoty::createDemo2();
$demo2->test2(); //输出这是demo2类的test2方法