php实现简单工厂模式

简单工厂模式,又称为静态工厂模式,在其工厂类中通过一个公有的静态方法返回每个类的实例。

成都创新互联公司主营汝阳网站建设的网络公司,主营网站建设方案,成都APP应用开发,汝阳h5微信平台小程序开发搭建,汝阳网站营销推广欢迎汝阳等地区企业咨询

代码:

//家禽接口

interface fowl

{

  public function eat(){};

  public function breed(){};

}

//母鸡类

class hen implements fowl 

{

 public function eat()

 {

   echo "我是鸡,我吃稻子和虫子!";

 }

 public function breed()

 {

   echo "我会生鸡蛋,咯咯蛋!";

 }

}

//鸭子类

class duck implements fowl

{

 public function eat()

 {

   echo "我是鸭子,我要吃鱼!";

 }

 public function breed()

 {

   echo "我会生鸭蛋,嘎嘎嘎!";

 }

}

class nofowlException extends Exception

{

  public $msg;

  public $errType;

  public function __construct($msg='',$errType=0)

  {

    $this->msg=$msg;

    $this->errType=$errType;

  }

}

//饲养员

class breeder 

{

  public static function factory($fowl)

  {

    switch($fowl)

    {

      case 'hen':

      return new hen();

      break;

      case 'duck':

      return new duck();

      break;

     default:

     throws new nofowlException('对不起我们暂时还没有养这种家禽');

     break;

    }

  }

}

//主程序

$hen=breeder::factory('hen');

$hen->eat();//输出我是鸡,我吃稻子和虫子!"

$hen->breed();//输出我会生鸡蛋,咯咯蛋!

$duck=breeder::factory('duck');

$duck->eat();//我是鸭子,我要吃鱼!

$duck->breed();//我会生鸭蛋,嘎嘎嘎!

$goose->breeder::factory('goose');//输出对不起我们暂时还没有养这种家禽

分享文章:php实现简单工厂模式
本文路径:https://www.cdcxhl.com/article18/ijhjdp.html

成都网站建设公司_创新互联,为您提供商城网站ChatGPT手机网站建设网站导航标签优化小程序开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

小程序开发