<!--工厂模式就是一种类,具有为您创建对象的某些方法,-->
<!--这样就可以使用工厂类创建对象,而不直接使用new。-->
<!--这样如果想更改创建的对象类型,只需更改该工厂即可。-->
<?php
//创建一个基本的工厂类
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 = "Apple";
public function getName()
{
// TODO: Implement getName() method.
return $this->name;
}
}
class C implements FetchName{
private $name = "Clock";
public function getName()
{
// TODO: Implement getName() method.
return $this->name;
}
}
class B implements FetchName{
private $name="Base";
public function getName()
{
// TODO: Implement getName() method.
return $this->name;
}
}
class D implements FetchName{
private $name="Date";
public function getName()
{
// TODO: Implement getName() method.
return $this->name;
}
}
//调用工厂类中的方法
$o = Factory::fac(5);
if($o instanceof FetchName){
echo $o->getName()."<br/>"; //Date
}
$p=Factory::fac(2);
echo $p->getName()."<br/>"; //Base
PHP-工厂模式
猜你喜欢
转载自blog.csdn.net/cyh0503/article/details/81611853
今日推荐
周排行