<?php
// 设计模式之工厂模式
class Factory
{
  static public function fac ($id)
  {
    switch ($id) {
      case 1:
        return new A();
      case 2:
        return new B();
      case 3:
        return new C();
      default:
        return new D();
    }
  }
}
  /**
   * 创建一个接口
   */
  interFace FetchName
  {
    public function getname();
  }
  class A implements FetchName
  {
    private $name = "A";
    public function getname ()
    {
      return $this->name;
    }
  }
  class B implements FetchName
  {
    private $name = "B";
    public function getname ()
    {
      return $this->name;
    }
  }
  class C implements FetchName
  {
    private $name = "C";
    public function getname ()
    {
      return $this->name;
    }
  }
  class D implements FetchName
  {
    private $name = "D";
    public function getname ()
    {
      return $this->name;
    }
  }
$obj = Factory::fac(5);
echo $obj->getname();