最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA簡單工廠模式(從現(xiàn)實生活角度理解代碼原理)

 更新時間:2017年03月14日 11:06:09   作者:潘侯爺  
本文主要介紹了JAVA簡單工廠模式(從現(xiàn)實生活角度理解代碼原理)的相關(guā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)文章

  • Java最長公共子序列示例源碼

    Java最長公共子序列示例源碼

    這篇文章主要介紹了Java最長公共子序列的定義及示例源代碼,具有一定參考價值,需要的朋友可以看下。
    2017-09-09
  • SpringBoot+MyBatis簡單數(shù)據(jù)訪問應(yīng)用的實例代碼

    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ù)

    這篇文章主要介紹了SpringCloud-Alibaba-Seata分布式事務(wù)的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • linux配置jdk環(huán)境變量簡單教程

    linux配置jdk環(huán)境變量簡單教程

    這篇文章主要為大家詳細(xì)介紹了linux配置jdk環(huán)境變量簡單教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • springboot快速集成mybatis-plus的詳細(xì)教程

    springboot快速集成mybatis-plus的詳細(xì)教程

    這篇文章主要介紹了springboot快速集成mybatis-plus的教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • k8s部署java項目的實現(xiàn)

    k8s部署java項目的實現(xiàn)

    本文主要介紹了k8s部署java項目的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 9個java數(shù)組常用操作實例

    9個java數(shù)組常用操作實例

    在本篇文章里小編給各位整理了關(guān)于java數(shù)組常用操作的實例以及相關(guān)的代碼,需要的朋友們跟著學(xué)習(xí)下。
    2019-07-07
  • Apache?log4j2-RCE?漏洞復(fù)現(xiàn)及修復(fù)建議(CVE-2021-44228)

    Apache?log4j2-RCE?漏洞復(fù)現(xiàn)及修復(fù)建議(CVE-2021-44228)

    Apache?Log4j2是一款Java日志框架,大量應(yīng)用于業(yè)務(wù)系統(tǒng)開發(fā)。2021年11月24日,阿里云安全團(tuán)隊向Apache官方報告了Apache?Log4j2遠(yuǎn)程代碼執(zhí)行漏洞(CVE-2021-44228),本文給大家介紹Apache?log4j2-RCE?漏洞復(fù)現(xiàn)(CVE-2021-44228)的相關(guān)知識,感興趣的朋友一起看看吧
    2021-12-12
  • Java特性?Lambda?表達(dá)式和函數(shù)式接口

    Java特性?Lambda?表達(dá)式和函數(shù)式接口

    這篇文章主要介紹了Java特性?Lambda?表達(dá)式和函數(shù)式接口,Lambda表達(dá)式基于函數(shù)式編程思想,也可以稱為閉包,是Java?8引入的重要新特性,?Lambda允許把函數(shù)作為一個方法的參數(shù)
    2022-06-06

最新評論

土默特右旗| 云梦县| 永安市| 张北县| 江西省| 古蔺县| 广饶县| 广昌县| 焦作市| 安福县| 天台县| 灌云县| 凤阳县| 鞍山市| 依兰县| 桃园市| 习水县| 华池县| 阿克| 浙江省| 和龙市| 乌拉特中旗| 富源县| 叶城县| 历史| 万州区| 马山县| 汕头市| 东宁县| 贵定县| 双峰县| 永城市| 来安县| 弥渡县| 澄江县| 巴彦县| 那坡县| 潍坊市| 丰宁| 长寿区| 黔南|