目錄
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());}
}