(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.pswp.cn/news/918448.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/918448.shtml
英文地址,請注明出處:http://en.pswp.cn/news/918448.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

QT遠程開發技巧

交叉編譯時野火提供的文件 交叉編譯器 GNU官網可以下載, QT庫文件這里給的QT-everyWhere版本,是開源版本需要自行編譯。(遠程服務器通常是PC架構【AMD64】,直接apt-get install下載的qt也是Pc架構的,不能直接在板卡【ARM64】上運行,必須對源碼交叉編譯) 注意QT遵從GPL開源…

Linux操作系統從入門到實戰(十九)進程狀態

Linux操作系統從入門到實戰(十九)進程狀態前言一、什么是進程狀態二、狀態本質三、最核心的3種狀態1. 就緒狀態2. 運行狀態3. 阻塞狀態四、狀態變化的核心1/兩種資源如何影響狀態?五、操作系統怎么管理這些狀態?六、Linux里結構體…

容器技術之docker

容器技術之Docker一、什么是Docker二、為什么會出現Docker2.1 環境一致性問題2.2 虛擬化技術的局限性2.3 微服務架構的興起三、重要概念3.1 什么是鏡像3.2 什么是容器3.3 總結:3.4 Docker倉庫四、安裝Docker(Ubuntu系統下)1.卸載老的版本2.更…

數據結構與算法:樹狀數組

前言 太難了…… 一、樹狀數組使用場景 樹狀數組一般用來維護可差分的信息,比如累加和,累乘積等。舉個例子,當整個數組的累加和為sum1,一個區間內的累加和為sum2,那么除了這個區間剩下部分的累加和就是sum1-sum2&am…

“一車一碼一池一充”:GB 17761-2024新國標下電動自行車的安全革命

2025年9月1日,電動自行車行業將迎來一場深刻變革。隨著強制性國家標準GB 17761-2024《電動自行車安全技術規范》的全面實施,我國超3.5億電動自行車用戶的安全出行將獲得全新的技術保障。在這場安全升級中,“一車一碼一池一充”的全鏈條管控機…

QT聊天項目DAY18

1.文件傳輸1.1 客戶端采用分塊傳輸(20MB/塊),以及MD5碼校驗并將讀出的二進制數據采用Base64編碼進行傳輸1.1.0 通信協議1.1.1 UI采用垂直布局,該布局大小為570 * 160,間隔全是0,UI方面不詳細介紹了1.1.2 MainWindow頭文件#ifndef …

centos系統sglang單節點本地部署大模型

前置工作 本地部署大模型的基本概念和前置工作-CSDN博客 模型部署 這里通過docker容器進行部署。我這里是h20*8,部署deepseek-v3-0324,這個配置和模型都比較大,大家根據自己的硬件對應調整 步驟一 我們要通過sglang部署模型,先拉取sglang的docker鏡像,這里下載失敗的…

【dij算法/最短路/分層圖】P4568 [JLOI2011] 飛行路線

題目描述 Alice 和 Bob 現在要乘飛機旅行,他們選擇了一家相對便宜的航空公司。該航空公司一共在 nnn 個城市設有業務,設這些城市分別標記為 000 到 n?1n-1n?1,一共有 mmm 種航線,每種航線連接兩個城市,并且航線有一定…

告別傳統,CVPR三論文用GNN動態圖重塑視覺AI

本文選自gongzhonghao【圖靈學術SCI論文輔導】關注我們,掌握更多頂會頂刊發文資訊今天,為大家推薦一個極具前沿價值與實用潛力的研究方向:圖神經網絡(GNN)。作為深度學習領域的新興力量,圖神經網絡在近年頂…

HTTP/HTTPS代理,支持RSA和SM2算法

在日常工作和學習中,我們經常遇到HTTP和HTTPS的相關問題,要解決這些問題,有時就需要搭建各種實驗環境,重現業務場景,比如: 將HTTP轉為HTTPS。本地只能發送HTTP請求,但是遠程服務器卻只能接收HT…

如何提高AI寫作論文的查重率?推薦七個AI寫作論文工具

隨著AI技術在學術領域的廣泛應用,越來越多的學生和研究人員開始使用AI寫作工具來提高寫作效率,幫助完成畢業論文、科研論文等。然而,AI生成的內容是否會提高論文的查重率?是否能有效避免重復和提高通過率?這些問題成為…

跨平臺、低延遲、可嵌入:實時音視頻技術在 AI 控制系統中的進化之路

引言:面向未來的實時音視頻基座 在萬物互聯與智能化加速落地的時代,實時音視頻技術早已不再只是社交娛樂的附屬功能,而是智慧城市、應急指揮、遠程操控、工業智造、教育培訓、安防監控等系統的“神經中樞”。一條高性能、可控、低延遲的視頻…

Spring WebFlux開發指導

Spring WebFlux是一個響應式的web服務器端應用開發框架,響應式是指,當前端組件的狀態發生變化,則生成事件通知,根據需求可異步或者同步地向服務器端接口發送請求,當服務器端網絡IO組件的狀態發生變化,則生成…

09-docker鏡像手動制作

文章目錄一.手動制作單服務的nginx鏡像1.啟動一個基礎容器,此處我使用的是centos7鏡像。2.修改容器中的軟件源3.安裝nginx服務并啟動nginx服務4.修復nginx的首頁文件5.退出容器6.將退出的容器提交為鏡像7.測試鏡像的可用性二.手動制作多服務的nginx sshd鏡像1.啟用…

Android.mk教程

語法 Android.mk 的必備三行 LOCAL_PATH : $(call my-dir) # Android.mk的目錄,call調用函數include $(CLEAR_VARS) # 除了LOCAL_PATH清除所有LOCAL_XXXinclude $(BUILD_SHARED_LIBRARY) # BUILD_XXX, 指定構建類型 # BUILD_SHARED_LIBRARY → .so動態庫 # BUILD…

稠密檢索:基于神經嵌入的高效語義搜索范式

本文由「大千AI助手」原創發布,專注用真話講AI,回歸技術本質。拒絕神話或妖魔化。搜索「大千AI助手」關注我,一起撕掉過度包裝,學習真實的AI技術! 1. 背景與定義 稠密檢索(Dense Retrieval)是一…

AI日報0807 | GPT-5或今晚1點來襲:四大版本全曝光

關注:未來世界2099每日分享:全球最新AI資訊【應用商業技術其他】服務:【學習Q】【資源Q】【學習資料】【行業報告】(無限免費下載)應用 1、訊飛星火代碼畫布震撼上線:動嘴就能開發,工作效率翻倍…

認識爬蟲 —— 正則表達式提取

本質是對字符串的處理,正則表達式描述的是一種字符串匹配的模式。簡而言之,用具備一定特征意義的表達式對字符串進行檢查,將符合條件的子字符串提取出來。導入模塊import re一、單字符匹配match(表達式,匹配對象):匹配…

單鏈表專題---暴力算法美學(1)(有視頻演示)

1.1 移除鏈表元素 題目要求:給你一個鏈表的頭節點head 和一個整數val,請你刪除鏈表中所有滿足Node.val val 的節點,并返回新的頭節點。 思路一:遍歷鏈表,遇到val就刪除,pcur指向val的下一個節點,最后只剩…

機器學習-決策樹(DecisionTree)

0 回歸決策樹展示 import pandas as pd import numpy as np from sklearn.tree import DecisionTreeRegressor from sklearn.metrics import root_mean_squared_error, r2_score from sklearn.model_selection import GridSearchCV,KFold from sklearn.model_selection import…