php设计模式

设计模式
单例模式
1.将构造函数变成私有的
2.提供一个静态方法来返回对象
3.在方法里面加限制条件

class Ren{
    public $name;
    public static $dx;
    private function __construct(){    
    }
    public static function duixiang(){
        if(empty(Ren::$dx)){
            Ren::$dx = new Ren();
        }
        return Ren::$dx;
    }
}

$r = Ren::duixiang();
$r->name = "张三";
$r1 = Ren::duixiang();
var_dump($r1);

//工厂模式
/*class YunSuan{
    public $a;
    public $b;
    public function jia(){
        return $this->a+$this->b;
    }
    public function jian(){
        return $this->a-$this->b;
    }
    public function cheng(){
        return $this->a*$this->b;
    }
    public function chu(){
        return $this->a/$this->b;
    }
}*/
//做为父类
/*class YunSuan{
    public $a;
    public $b;
    public function suan(){
    }
}
class Jia extends YunSuan{
    public function suan(){
        return $this->a+$this->b;
    }
}
class Jian extends YunSuan{
    public function suan(){
        return $this->a-$this->b;
    }
}
class Yu extends YunSuan{
    public function suan(){
        return $this->a%$this->b;
    }
}
//工厂类
class GongChang{
    public static function duixiang($ysf){
        switch($ysf){
            case "+":
                return new Jia();
                break;
            case "-":
                return new Jian();
                break;
            case "%":
                return new Yu();
                break;
        }
    }
}

$y = GongChang::duixiang("-");
$y->a = 10;
$y->b = 5;
echo $y->suan();*/

原文地址:https://www.cnblogs.com/sunzhenkun/p/7440785.html