博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式(二)----工厂模式
阅读量:6357 次
发布时间:2019-06-23

本文共 895 字,大约阅读时间需要 2 分钟。

工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。

工厂模式会是我们的应用获取更多的可扩展性,减少修改量.

<?php

Interface Animal

{

  public function food();
}
class Cat implements Animal
{
  public function food()
{
  echo "小猫吃小鱼";
}
}
class Fish implements Animal
{
  public function food(){

  echo "小鱼吃虾米";

  }

}
Class Shrimp implements Animal
{
  public function food(){
  echo "我吃什么";
  }
}

class animalFactory

{
  public static function factory($animal)
  {
    // $animal = ucfirst($animal);
    switch ($animal){
      case "cat":
        return new Cat();
        break;
      case "dog":
        return new Fish();
        break;
      case "shrimp":
        return new Cat();
        break;
    }
  }
}

try{

  $animal = animalFactory::factory('dog');
  throw new Exception("可能你输入错误了吧");
  }catch(Exception $e){
    echo "错误信息是:" . $e->getMessage();die;
}
$animal->food();

转载于:https://www.cnblogs.com/catcrazy/p/6289379.html

你可能感兴趣的文章
98道经典Vue面试题总结(长期更新)
查看>>
Swoole 源码分析——Server模块之ReactorThread事件循环(上)
查看>>
C++引用的本质
查看>>
react antd-mobile 项目中实现 css 与 less 局部作用域化
查看>>
HTML5和CSS3系列(三):变化元素、新增标签、多媒体、新增表单、全局属性
查看>>
Angular练习之animations动画三
查看>>
简单而完整地体验一遍sentry的sourcemap服务
查看>>
扒取网页的mp3资源
查看>>
Git分支管理
查看>>
生孩子的问题
查看>>
一个链接能打开win10设置界面
查看>>
Redis开机启动配置
查看>>
GraphQL 入门: Apollo Client - 简介
查看>>
当编程语言掌握在企业手中,是生机还是危机?
查看>>
AlphaZero进化论:从零开始,制霸所有棋类游戏
查看>>
Rust编程语言的核心部件
查看>>
效果逆天的通用语言模型GPT 2.0来了,它告诉了我们什么?
查看>>
eBay测试老兵的修炼之道:如何从测试“小工”到测试“专家”?
查看>>
传统运维团队转型应该注意哪些问题?
查看>>
Coinbase是如何在其加密货币交易平台上应对扩展性挑战的
查看>>