为了账号安全,请及时绑定邮箱和手机立即绑定

php实现简单工厂模式

标签:
PHP

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

代码:

//家禽接口

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');//输出对不起我们暂时还没有养这种家禽

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消