JAVA简单工厂模式(从现实生活角度理解代码原理)

发布时间 - 2026-01-11 00:10:04    点击率:

简单工厂模式(Simple Factory),说他简单是因为我们可以将此模式比作一个简单的民间作坊,他们只有固定的生产线生产固定的产品。也可以称他为静态工厂设计模式,类似于之前提到过静态代理设计模式,一条生产线生产一种产品(一个代理代理一种业务),为了方便大家理解,我们将KFC比作一个简单的工厂,实现代码如下:

//建造接口(或者抽象类)提供食物生产方法
interface Food{
  public abstract void get();
}
//汉堡类(后厨生产线)来实现食物生产方法
class Hamburger implements Food{
  public void get(){
    System.out.println("汉堡来了");
  }
}
//炸鸡类(后厨生产线)来实现食物生产方法
class Chicken implements Food{
  public void get(){
    System.out.println("炸鸡来了");
  }
}
//KFC(静态工厂类)
class KFC{
  //提供获取食物的方法(传入的参数name为食客所点食物)
  public static Food getFood(String name){
    /*如果所点食物是炸鸡/汉堡(见名知义)
     *则实例化该生产线(通知对应后厨生产线)
     */
    if(name.equals("炸鸡")){
      return new Chicken();
    }
    if(name.equals("汉堡")){
      return new Hamburger();
    }
    return null;
  }
}
//测试类
public class Test{
  public static void main(String[] args){
    KFC kfc = new KFC();//实例化KFC
    Food m = kfc.getFood("炸鸡");
    Food n = kfc.getFood("hanbao");//输入的字符串不符合工厂类对应值
    try{
      m.get();
      n.get();
     //添加异常处理(如果没有对应生产线则提示异常处理结果)
    }catch(NullPointerException e){
      System.out.print("没有你要的食物");
    }
  }
}

输出结果:

1 炸鸡来了 2 没有你要的食物

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# java简单工厂模式代码  # java工厂模式例子  # java  # 工厂模式  # 浅谈Java面向接口编程  # 以Java代码为例讲解设计模式中的简单工厂模式  # 浅析Java设计模式编程中的单例模式和简单工厂模式  # java设计模式之简单工厂模式简述  # 简单工厂模式_动力节点Java学院整理  # Java简单工厂模式定义与用法实例分析  # Java设计模式之工厂模式分析【简单工厂、工厂方法、抽象工厂】  # Java设计模式之抽象工厂模式  # 深入理解java三种工厂模式  # Java设计模式之工厂模式(Factory模式)介绍  # java 工厂模式的讲解及优缺点的介绍  # Java面向接口编程之简单工厂模式示例  # 来了  # 你要  # 来实现  # 是因为  # 我们可以  # 如果没有  # 说他  # 不符合  # 到过  # 他为  # 将此  # 类似于  # 抽象类  # Food  # KFC  # public  # abstract  # void  # interface  # pre 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: js实现获取鼠标当前的位置  敲碗10年!Mac系列传将迎来「触控与联网」双革新  利用JavaScript实现拖拽改变元素大小  如何在阿里云服务器自主搭建网站?  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  桂林网站制作公司有哪些,桂林马拉松怎么报名?  Laravel安装步骤详细教程_Laravel环境搭建指南  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  nginx修改上传文件大小限制的方法  如何获取上海专业网站定制建站电话?  Laravel集合Collection怎么用_Laravel集合常用函数详解  Java遍历集合的三种方式  如何在阿里云虚拟主机上快速搭建个人网站?  Laravel定时任务怎么设置_Laravel Crontab调度器配置  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  如何解决hover在ie6中的兼容性问题  Laravel如何处理表单验证?(Requests代码示例)  教学论文网站制作软件有哪些,写论文用什么软件 ?  清除minerd进程的简单方法  北京企业网站设计制作公司,北京铁路集团官方网站?  如何在宝塔面板创建新站点?  C#如何调用原生C++ COM对象详解  如何确保FTP站点访问权限与数据传输安全?  Linux系统运维自动化项目教程_Ansible批量管理实战  打造顶配客厅影院,这份100寸电视推荐名单请查收  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  Laravel怎么清理缓存_Laravel optimize clear命令详解  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  如何彻底删除建站之星生成的Banner?  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  html5的keygen标签为什么废弃_替代方案说明【解答】  如何在VPS电脑上快速搭建网站?  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  EditPlus 正则表达式 实战(3)  网站建设要注意的标准 促进网站用户好感度!  JavaScript如何实现倒计时_时间函数如何精确控制  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  如何快速完成中国万网建站详细流程?  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  如何在宝塔面板中创建新站点?  如何用5美元大硬盘VPS安全高效搭建个人网站?  php json中文编码为null的解决办法  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  如何在IIS管理器中快速创建并配置网站?  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  javascript基于原型链的继承及call和apply函数用法分析