工厂模式就是一种类,具有为您创建对象的某些方法,这样就可以使用工厂类创建对象,而不直接使用new。这样如果想更改创建的对象类型,只需更改该工厂即可。 例子: class Factory {//创建一个基本的工厂类static public function fac($id){//创建一个返回对象实例的静态方法if(1 == $id) return new A();elseif(2==$id) return new B();elseif(3==$id) return new C();return new D();}}interface FetchName {//创建一个接口public function getname();//}class A implements FetchName{private $name = "AAAAA";public function getname(){ return $this->name; }}class C implements FetchName{private $name = "CCCCC";public function getname(){ return $this->name; }}class B implements FetchName{private $name = "BBBBB";public function getname(){ return $this->name; }}class D implements FetchName{private $name = "DDDDD";public function getname(){ return $this->name; }}$o = Factory::fac(6);//调用工厂类中的方法if($o instanceof FetchName){echo $o->getname();//DDDDD}$p=Factory::fac(3);echo $p->getname();//CCCCC
PHP工厂模式
2018-01-18
评论1
暂时没有评论