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


相关推荐: javascript事件捕获机制【深入分析IE和DOM中的事件模型】  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  如何登录建站主机?访问步骤全解析  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  香港服务器选型指南:免备案配置与高效建站方案解析  如何快速生成可下载的建站源码工具?  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  怎么用AI帮你为初创公司进行市场定位分析?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  Linux系统命令中tree命令详解  Laravel如何优化应用性能?(缓存和优化命令)  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  如何在云指建站中生成FTP站点?  Laravel Session怎么存储_Laravel Session驱动配置详解  独立制作一个网站多少钱,建立网站需要花多少钱?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  如何用虚拟主机快速搭建网站?详细步骤解析  移动端脚本框架Hammer.js  MySQL查询结果复制到新表的方法(更新、插入)  C++用Dijkstra(迪杰斯特拉)算法求最短路径  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  Laravel如何使用Collections进行数据处理?(实用方法示例)  js实现获取鼠标当前的位置  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  jQuery 常见小例汇总  WordPress 子目录安装中正确处理脚本路径的完整指南  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  黑客如何通过漏洞一步步攻陷网站服务器?  Laravel如何使用withoutEvents方法临时禁用模型事件  装修招标网站设计制作流程,装修招标流程?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  如何在景安云服务器上绑定域名并配置虚拟主机?  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  再谈Python中的字符串与字符编码(推荐)  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  如何快速搭建安全的FTP站点?  HTML 中如何正确使用模板变量为元素的 name 属性赋值  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  Laravel如何实现API版本控制_Laravel版本化API设计方案  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  Laravel如何使用Vite进行前端资源打包?(配置示例)  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)