当前位置: 首页 > 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.lryc.cn/news/614460.html

相关文章:

  • 解码华为云安全“铁三角”:用“分层防御”化解安全挑战
  • FFmpeg 视频旋转信息处理:3.4 vs 7.0.2
  • 剪映里面导入多张照片,p图后如何再导出多张照片?
  • centos系统配置防火墙
  • 基于深度学习的nlp
  • 2025.08.08 反转链表
  • 强化学习全流程开发:从环境搭建到智能体对弈的DQN与Actor-Critic实现
  • 使用 ast-grep 精准匹配指定类的方法调用(以 Java 为例)
  • TDSQL GTS文件说明
  • Mysql与Ooracle 索引失效场景对比
  • 大语言模型提示工程与应用
  • Node.js 》》数据验证 Joi 、express-joi
  • HarmonyOS SDK助力讯飞听见App能力建设
  • node.js 学习笔记2 进程/线程、fs
  • 力扣-56.合并区间
  • 经常问的14000
  • 智能巡检机器人的进化:当传统巡检遇上Deepoc具身智能外拓开发板
  • Visual Studio 2019 + Qt + MySQL 开发调试全过程问题详解
  • Vue 3 表单数据缓存架构设计:从问题到解决方案
  • 前端基础之《Vue(29)—Vue3 路由V4》
  • ADB打印设备日志相关
  • 手机拍照识别中模糊场景准确率↑37%:陌讯动态适配算法实战解析
  • 用LaTeX优化FPGA开发:结合符号计算与Vivado工具链(二)
  • 大模型量化上溢及下溢解析
  • ESP32-menuconfig(4) -- Partition Table
  • Web Worker 性能革命:让浏览器多线程为您的应用加速
  • ChipCamp探索系列 -- 1. Soft-Core RISC-V on FPGA
  • 【10】C#实战篇——C# 调用 C++ dll(C++ 导出函数、C++导出类)
  • 华清远见25072班C语言学习day5
  • Advances and Challenges in Foundation Agents--Memory调研