PHP-工厂模式

<!--工厂模式就是一种类,具有为您创建对象的某些方法,-->
<!--这样就可以使用工厂类创建对象,而不直接使用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

猜你喜欢

转载自blog.csdn.net/cyh0503/article/details/81611853
今日推荐