首页 > 代码库 > PHP设计模式

PHP设计模式

 
1.单例模式

 
class Danli
{
     //私有化类对象存放变量
     private static $_instance;
 
//私有化构造函数
private function __construct(){}
 
//私有化克隆函数
private function __clone(){}
 
//类实例化接口
public static function getInstance()
{
     if(!(self::$_instance instanceof self))
{
     self::$_instance = new self;
}
     return self::$_instance;
}
 
//根据用户ID,获取用户名
public function getUserName($id)
{
     //获取数据操作
     return "返回最后的数据: {$id}";
}
}
 
$Danli = Danli::getInstance();
echo $Danli->getUserName(2);
 
2.抽象工厂模式

 
//定义抽象类 . 抽象方法
abstract class CreateObj{
    abstract static function getValue($num1,$num2);
}
 
//定义加法计算类
class CalculationAdd extends CreateObj
{
    public static function getValue($num1,$num2){
        return $num1 + $num2;
    }
}
//定义乘法计算类
class CalculationSub extends CreateObj
{
    public static function getValue($num1,$num2){
        return $num1 * $num2;
    }
}
//定义总控制类 - 选择指定的对象类
class Calculation{
    public static function getClassObj($type){
        switch ($type)
        {
            case ‘+‘:
                    return new CalculationAdd();
                    break;
            case ‘*‘:
                return new CalculationSub();
                break;
        }
    }
}
 
$Calculation = Calculation::getClassObj(‘+‘);
echo $Calculation->getValue(1,3);
 
3.简单工厂模式

 
//简单工厂模式: 即静态工厂模式. 简单工程模式,是通过一个静态方法创建对象
interface CreateObj
{
    function getValue($num1,$num2);
}
 
//加法运算类
class CalculationAdd implements CreateObj
{
    function getValue($num1,$num2)
    {
        return $num1 + $num2;
    }
 
}
 
//乘法运算类
class CalculationSub implements CreateObj
{
    function getValue($num1, $num2)
    {
        return $num1 * $num2;
    }
}
 
//运算控制类
class SimpleFactory
{
    public static function CreateAdd()
    {
        return new CalculationAdd();
    }
    public static function CreateSub()
    {
        return new CalculationSub();
    }
}
 
$Add = SimpleFactory::CreateAdd();
echo $Add->getValue(1,4)."<br/>";
 
$Sub = SimpleFactory::CreateSub();
echo $Sub->getValue(2,3);
 
 

PHP设计模式