目录
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{
@Override
public String description() {
return "银行工作一般稳定,加班一般,薪资一般,技术提升一般";
}
}
(2) Company
package com.phdvb.factroy.jobTypes;
public class Company implements Job {
@Override
public String description() {
return "私企工作不稳定,加班较多,薪资较高,技术提升较快";
}
}
(3) SystemJob
package com.phdvb.factroy.jobTypes;
public class SystemJob implements Job{
@Override
public String description() {
return "体制工作稳定,加班一般,薪资较低。技术提升慢";
}
}
(4) Other
package com.phdvb.factroy.jobTypes;
public class Other implements Job{
@Override
public 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();
}else
return 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{
@Override
public String getLanguage() {
return "你好,我是剖好的VB!";
}
}
package com.phdvb.factroy.i18n;
public class France implements Language{
@Override
public String getLanguage() {
return "Bonjour, je suis VB eviseed!";
}
}
package com.phdvb.factroy.i18n;
public class Japan implements Language{
@Override
public String getLanguage() {
return "こんにちは、私はプロのVBです!";
}
}
package com.phdvb.factroy.i18n;
public class Russia implements Language{
@Override
public String getLanguage() {
return "Привет, я свежерезанный!";
}
}
package com.phdvb.factroy.i18n;
public class US implements Language{
@Override
public 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();
}else
return 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());
}
}