<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> </head> <body> <?php //设计模式 //单例模式(一个类只能做一个单体模式) //1.将构造函数变成私有的 //2.提供一个静态方法来返回对象 //3.在方法里面加限制条件 /*class Ren{ private function __construct(){ } public static function duixiang(){ return new Ren(); } } $r = Ren::duixiang(); var_dump($r);*/ /*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($r);*/ //工厂模式 /*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 $a; public $b; 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();*/ ?> </body> </html>