首先有个接口

  interface Visit {

    public function go ();

  }

然后有三个类Leg,Car,Train

  class Leg implements Visit {

    public function go (){

      echo "walt to 新疆";

    }

  }

  class Car implements Visit {

    public function go () {

      echo "drive car to 新疆";

    }

  }

  class Train implements Visit {

    public function go () {

      echo "go to 新疆 by train";

    }

  }

依赖关系:有一个旅行者Traveller

  class Traveller  {

     protected  $trafficTool;

    public function __construct () {

      //依赖产生

      $this->trafficTool = new Leg();     //选择步行

    }

    public function visitXinjiang () {

      $this->trafficTool->go();           //去新疆玩啦

    }

  }

  $visit = new Traveller();

  $visit->visitXinjiang();

 

简单工厂模式:

  //工厂

  class TracfficToolFactory{

    public function createTracfficTool($name) {

      switch ($name) {

        case 'Leg': 

          return new Leg();

          break;

        case 'Car': 

          return new Car();

          break;

        case 'Train': 

          return new Train();

          break;

      }

    }

  }

  //Traveller

  class  Traveller {

    protected $TrafficTool;

    public function createTraffic ($name) {

    $this->TrafficTool = new TracfficToolFactory()->createTracfficTool($name);

    }

    public function visitXinjiang () {

      $this->TrafficTool->go();

    }

   }

  $traffic = new Traveller();

  $traffic->createTraffic('Leg');  

  $traffic->visitXingjiang();

 

相关文章:

  • 2022-02-16
  • 2022-02-17
  • 2022-01-02
  • 2022-02-24
  • 2022-12-23
  • 2021-07-15
  • 2021-07-28
  • 2022-01-09
猜你喜欢
  • 2021-09-04
  • 2022-12-23
  • 2022-01-15
  • 2021-05-22
  • 2022-12-23
  • 2021-06-26
  • 2022-12-23
相关资源
相似解决方案