JAVA簡單工廠模式(從現(xiàn)實生活角度理解代碼原理)
簡單工廠模式(Simple Factory),說他簡單是因為我們可以將此模式比作一個簡單的民間作坊,他們只有固定的生產(chǎn)線生產(chǎn)固定的產(chǎn)品。也可以稱他為靜態(tài)工廠設(shè)計模式,類似于之前提到過靜態(tài)代理設(shè)計模式,一條生產(chǎn)線生產(chǎn)一種產(chǎn)品(一個代理代理一種業(yè)務(wù)),為了方便大家理解,我們將KFC比作一個簡單的工廠,實現(xiàn)代碼如下:
//建造接口(或者抽象類)提供食物生產(chǎn)方法
interface Food{
public abstract void get();
}
//漢堡類(后廚生產(chǎn)線)來實現(xiàn)食物生產(chǎn)方法
class Hamburger implements Food{
public void get(){
System.out.println("漢堡來了");
}
}
//炸雞類(后廚生產(chǎn)線)來實現(xiàn)食物生產(chǎn)方法
class Chicken implements Food{
public void get(){
System.out.println("炸雞來了");
}
}
//KFC(靜態(tài)工廠類)
class KFC{
//提供獲取食物的方法(傳入的參數(shù)name為食客所點食物)
public static Food getFood(String name){
/*如果所點食物是炸雞/漢堡(見名知義)
*則實例化該生產(chǎn)線(通知對應(yīng)后廚生產(chǎn)線)
*/
if(name.equals("炸雞")){
return new Chicken();
}
if(name.equals("漢堡")){
return new Hamburger();
}
return null;
}
}
//測試類
public class Test{
public static void main(String[] args){
KFC kfc = new KFC();//實例化KFC
Food m = kfc.getFood("炸雞");
Food n = kfc.getFood("hanbao");//輸入的字符串不符合工廠類對應(yīng)值
try{
m.get();
n.get();
//添加異常處理(如果沒有對應(yīng)生產(chǎn)線則提示異常處理結(jié)果)
}catch(NullPointerException e){
System.out.print("沒有你要的食物");
}
}
}
輸出結(jié)果:
1 炸雞來了 2 沒有你要的食物
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
SpringBoot+MyBatis簡單數(shù)據(jù)訪問應(yīng)用的實例代碼
這篇文章主要介紹了SpringBoot+MyBatis簡單數(shù)據(jù)訪問應(yīng)用的實例代碼,需要的朋友可以參考下2017-05-05
解決"XML Parser Error on line 1: 前言中不允許有內(nèi)容"錯誤
解決用windows自帶的記事編輯xml文件后出現(xiàn) "XML Parser Error on line 1: 前言中不允許有內(nèi)容。"的錯誤2018-02-02
詳解SpringCloud-Alibaba-Seata分布式事務(wù)
這篇文章主要介紹了SpringCloud-Alibaba-Seata分布式事務(wù)的相關(guān)知識,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12
springboot快速集成mybatis-plus的詳細教程
這篇文章主要介紹了springboot快速集成mybatis-plus的教程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
Apache?log4j2-RCE?漏洞復(fù)現(xiàn)及修復(fù)建議(CVE-2021-44228)
Apache?Log4j2是一款Java日志框架,大量應(yīng)用于業(yè)務(wù)系統(tǒng)開發(fā)。2021年11月24日,阿里云安全團隊向Apache官方報告了Apache?Log4j2遠程代碼執(zhí)行漏洞(CVE-2021-44228),本文給大家介紹Apache?log4j2-RCE?漏洞復(fù)現(xiàn)(CVE-2021-44228)的相關(guān)知識,感興趣的朋友一起看看吧2021-12-12

