当前位置: 首页 > news >正文

(1-9-2)Java 工厂模式

目录

1.设计模式与分类

2. 工厂模式

2.1 工厂模式概述

2.2 简单工厂

2.3 学生推荐就业Demo

00.项目目录

01. 创建抽象接口Job

02. 创建实体类

03. 创建推荐工作工厂类

04. 创建学生推荐就业客户类

3. i18n国际化语言标题自适应

00. 实现效果

01. 创建抽象接口

02. 创建实体类

03.创建静态工厂类

04. 创建客户需求测试


1.设计模式与分类

设计模式可以分为三大类:


2. 工厂模式

2.1 工厂模式概述

2.2 简单工厂

2.3 学生推荐就业Demo

00.项目目录

01. 创建抽象接口Job
package com.phdvb.factroy.jobTypes;public interface Job {public String description();
}
02. 创建实体类

(1) Bank

package com.phdvb.factroy.jobTypes;public class Bank implements Job{@Overridepublic String description() {return "银行工作一般稳定,加班一般,薪资一般,技术提升一般";}
}

(2) Company

package com.phdvb.factroy.jobTypes;public class Company implements Job {@Overridepublic String description() {return "私企工作不稳定,加班较多,薪资较高,技术提升较快";}
}

(3) SystemJob

package com.phdvb.factroy.jobTypes;public class SystemJob implements Job{@Overridepublic String description() {return "体制工作稳定,加班一般,薪资较低。技术提升慢";}
}

(4) Other

package com.phdvb.factroy.jobTypes;public class Other implements Job{@Overridepublic String description() {return "选择自己热爱的事业!";}
}
03. 创建推荐工作工厂类
package com.phdvb.factroy.jobTypes;public class JobChooser {public Job suggest(String purpose){Job job = null;if(purpose.equals("想要奋斗!")){return new Company();}else if(purpose.equals("偏爱金融!")){return new Bank();}else if(purpose.equals("热爱奉献!")){return new SystemJob();}elsereturn new Other();}
}
04. 创建学生推荐就业客户类
package com.phdvb.factroy.jobTypes;public class Student {public static void main(String[] args) {JobChooser jobChooser = new JobChooser();Job youJob = jobChooser.suggest("热爱奉献!");System.out.println(youJob.description());}
}


3. i18n国际化语言标题自适应

00. 实现效果

01. 创建抽象接口
package com.phdvb.factroy.i18n;public interface Language {public String getLanguage();
}
02. 创建实体类
package com.phdvb.factroy.i18n;public class China implements Language{@Overridepublic String getLanguage() {return "你好,我是剖好的VB!";}
}
package com.phdvb.factroy.i18n;public class France implements Language{@Overridepublic String getLanguage() {return "Bonjour, je suis VB eviseed!";}
}
package com.phdvb.factroy.i18n;public class Japan implements Language{@Overridepublic String getLanguage() {return "こんにちは、私はプロのVBです!";}
}
package com.phdvb.factroy.i18n;public class Russia implements Language{@Overridepublic String getLanguage() {return "Привет, я свежерезанный!";}
}
package com.phdvb.factroy.i18n;public class US implements Language{@Overridepublic String getLanguage() {return "Hello, I'm the dissected VB!";}
}
03.创建静态工厂类
package com.phdvb.factroy.i18n;public class MatchLang {public static Language getLanguage(String country) {if(country.equals("China")){return new China();}else if(country.equals("France")){return new France();}else if(country.equals("Japan")){return new France();}else if(country.equals("Russia")){return new Russia();}else if(country.equals("US")){return new US();}elsereturn null;}
}
04. 创建客户需求测试
package com.phdvb.factroy.i18n;public class LangChoose {public static void main(String[] args) {Language language = MatchLang.getLanguage("France");System.out.println(language.getLanguage());}
}

http://www.dtcms.com/a/321676.html

相关文章:

  • 基于AI多模态数据分析:美国劳动力市场疲软信号识别与趋势预测
  • 塑料可回收物检测数据集-10,000 张图片 智能垃圾分类系统 环保回收自动化 智慧城市环卫管理 企业环保合规检测 教育环保宣传 供应链包装优化
  • Neo4j APOC插件安装教程
  • 学生如何使用 DeepSeek 帮助自己的学习?
  • 【具身智能】具身智能的革命——人形机器人如何重塑人类日常生活
  • Go语言的gRPC教程-超时控制
  • XXL-JOB多实例
  • 「ECG信号处理——(22)Pan-Tompkins Findpeak 阈值检测 差分阈值算法——三种R波检测算法对比分析」2025年8月8日
  • 宁商平台税务新政再升级:精准施策,共筑金融投资新生态
  • 创建MyBatis-Plus版的后端查询项目
  • 构网型逆变器三相共直流母线式光储VSG仿真模型【simulink实现】
  • 影刀 —— 练习 —— 读取Excel的AB两列组成字典
  • 【数值积分】如何利用梯形法则近似求解积分
  • Nearest Smaller Values(sorting and searching)
  • 专题二_滑动窗口_最大连续1的个数
  • 用户组权限及高级权限管理:从基础到企业级 sudo 提权实战
  • 基于 Vue + 高德地图实现卫星图与 Mapbox 矢量瓦片
  • Claude Code:智能代码审查工具实战案例分享
  • 流形折叠与条件机制
  • C++学习笔记
  • “鱼书”深度学习进阶笔记(1)第二章
  • 从零构建桌面写作软件的书籍管理系统:Electron + Vue 3 实战指南
  • 智慧农业温室大棚物联网远程监控与智能监测系统
  • Nginx反向代理教程:配置多个网站并一键开启HTTPS (Certbot)
  • git reset
  • Maven/Gradle常用命令
  • 14. isaacsim4.2教程-April Tags/给相机加噪声
  • GPT-5发布:AI竞赛进入新阶段
  • Spring Boot Redis 缓存完全指南
  • ApiPost 设置统一URL前缀