/**
* Class single
* 单利模式
* 单例模式可以有效避免不同程序员new自己的对象,造成人为的系统消耗
*/
final class single
{
private static $obj;
private function __construct(){
}
private function __clone(){
}
public static function getObj(){
if(self::$obj){
return self::$obj;
}
return self::$obj = new self();
}
}
//$obj = single::getObj();
//print_r($obj);
/**
* Interface person
* 工厂模式
* 解决的是如何不通过new建立实例对象的方法
* 目的是可以随意改类名,而外面调用的是工厂里面的方法,所以以后维护的时候只需要改简单的几个类名就行
*/
interface person
{
function eat();
}
class woman implements person
{
function eat(){
echo 1;
}
}
class man implements person
{
function eat(){
echo 2;
}
}
class plant
{
public static function factory($obj){
switch ($obj) {
case 'woman':
return new woman();
break;
case 'man':
return new man();