PHP最常用的2种设计模式工厂模式和单例模式

1.工厂模式

主要作用是降低耦合度。

abstract class Operation{
    abstract public  function getValue($num1,$num2);
    public  function getAttr(){
        return 1;
    }
}
class Add extends Operation{
    public function getValue($num1, $num2){        
        return $num1+$num2;
    }
}

class Sub extends Operation{
    public function getValue($num1, $num2){
        return $num1-$num2;
    }
}

class Factory{
    public static function CreateObj($operation){
        
        switch ($operation){
            case '+': return new Add();
            case '-': return new Sub();
        }
        
    }
}

$Op=Factory::CreateObj('-');
echo $Op->getValue(3, 6);

用在真正开发中一般当做数据库选择类。

2单例模式

单例是因为一个就足够了,多了浪费。比如邮局里的电话簿只有一本,有需要的人拿来看,没有必要每个人要查的时候工作人员就拿一本出来,看完了再回收。

class Mysql{
    public static $conn;
    public static function getInstance(){
        if (!self::$conn){
            new self();
            return self::$conn;
        }else {
            return self::$conn;
        }
        
    }
    private  function __construct(){    
        self::$conn=  "mysql_connect:";//    mysql_connect('','','')    
    }
    
    public function __clone()
    {
        trigger_error("Only one connection");
    }
}

 echo Mysql::getInstance();
 echo Mysql::getInstance();
 

实际中用作数据库连接类和工厂模式一起使用,根据参数调用单例模式,可以提高资源使用效率。

posted @ 2012-08-10 17:55  大熊猫+1  阅读(589)  评论(0编辑  收藏  举报