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

Java基于外觀模式實(shí)現(xiàn)美食天下食譜功能實(shí)例詳解

 更新時(shí)間:2018年05月15日 12:06:35   作者:chengqiuming  
這篇文章主要介紹了Java基于外觀模式實(shí)現(xiàn)美食天下食譜功能,較為詳細(xì)的講述了外觀模式的概念、原理并結(jié)合實(shí)例形似詳細(xì)分析了Java基于外觀模式實(shí)現(xiàn)美食天下食譜功能的具體操作步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Java基于外觀模式實(shí)現(xiàn)美食天下食譜功能。分享給大家供大家參考,具體如下:

一、模式定義

外觀模式,是軟件工程師常用的一種軟件設(shè)計(jì)模式。它為子系統(tǒng)中的一組接口提供一個(gè)統(tǒng)一的高層接口,使子系統(tǒng)更容易使用。外觀模式通過一個(gè)外觀接口讀/寫子系統(tǒng)中的各接口的數(shù)據(jù)資源,而客戶可以通過外觀接口讀取內(nèi)部資源庫,不與子系統(tǒng)產(chǎn)生交互。

二、模式舉例

1. 模式分析

我們借用美食天下菜譜中制作糖醋排骨這一道菜來說明這一模式。

2. 外觀模式靜態(tài)類圖

3. 代碼示例

3.1 創(chuàng)建糖醋排骨接口一ISpareribs

package com.demo.common;
/**
 * 糖醋排骨接口
 *
 * @author
 *
 */
public interface ISpareribs {
  // 準(zhǔn)備材料
  public void prepair();
  // 腌制排骨
  public void preserve();
  // 炸排骨
  public void fry();
  // 調(diào)汁
  public void juice();
}

3.2 糖醋排骨實(shí)現(xiàn)類一Spareribs

package com.demo.common;
/**
 *
 * 糖醋排骨實(shí)現(xiàn)類
 *
 * @author
 *
 */
public class Spareribs implements ISpareribs {
  // 準(zhǔn)備材料
  @Override
  public void prepair() {
    System.out.println("1.準(zhǔn)備豬排骨500克,蔥末、姜末、醬油、花生油、白糖、醋、料酒、鹽各適量...");
  }
  // 腌制排骨
  @Override
  public void preserve() {
    System.out.println("2.將排骨洗凈剁成3厘米長(zhǎng)段,用開水汆一下,撈出放盆內(nèi),加入鹽、醬油腌入味...");
  }
  // 炸排骨
  @Override
  public void fry() {
    System.out.println("3.炒鍋?zhàn)⒂蜔亮蔁幔屡殴钦ㄖ恋S色撈出;油溫加熱至八成,再下鍋炸至金黃色撈出...");
  }
  // 調(diào)汁
  @Override
  public void juice() {
    System.out
        .println("4.炒鍋留少許油燒熱,下入蔥花,姜末爆香,加入適量清水、醬油、醋、白糖、料酒、倒入排骨,燒開后用慢火煨至湯汁濃,排骨熟,淋上熟油,出鍋即可!");
  }
}

3.3 創(chuàng)建外觀接口一ICookFacade

package com.demo.facade;
/**
 * 外觀模式制作糖醋排骨
 *
 * @author
 *
 */
public interface ICookFacade {
  // 做糖醋排骨
  public void cookSpareribs();
}

3.4 外觀實(shí)現(xiàn)一CookFacade

package com.demo.facade;
import com.demo.common.ISpareribs;
import com.demo.common.Spareribs;
/**
 * 外觀模式制作糖醋排骨
 *
 * @author
 *
 */
public class CookFacade implements ICookFacade {
  // 糖醋排骨排骨接口
  private final ISpareribs spareribs = new Spareribs();
  // 做糖醋排骨
  public void cookSpareribs() {
    // 準(zhǔn)備材料
    this.spareribs.prepair();
    // 腌制排骨
    this.spareribs.preserve();
    // 炸排骨
    this.spareribs.fry();
    // 調(diào)汁
    this.spareribs.juice();
  }
}

3.5 客戶端測(cè)試

package com.demo;
import com.demo.facade.CookFacade;
import com.demo.facade.ICookFacade;
/**
 * 客戶端應(yīng)用程序
 *
 * @author
 *
 */
public class Client {
  public static void main(String[] args) {
    // 開始做糖醋排骨了!
    System.out.println("==== 開始做糖醋排骨...");
    // // 創(chuàng)建糖醋排骨對(duì)象實(shí)例
    // ISpareribs spareribs = new Spareribs();
    // // 準(zhǔn)備材料
    // spareribs.prepair();
    // // 腌制排骨
    // spareribs.preserve();
    // // 炸排骨
    // spareribs.fry();
    // // 調(diào)汁
    // spareribs.juice();
    ICookFacade cookFacade = new CookFacade();
    cookFacade.cookSpareribs();
    System.out.println("==== 糖醋排骨制作完成!");
  }
}

4. 運(yùn)行結(jié)果

==== 開始做糖醋排骨...
1.準(zhǔn)備豬排骨500克,蔥末、姜末、醬油、花生油、白糖、醋、料酒、鹽各適量...
2.將排骨洗凈剁成3厘米長(zhǎng)段,用開水汆一下,撈出放盆內(nèi),加入鹽、醬油腌入味...
3.炒鍋?zhàn)⒂蜔亮蔁?,下排骨炸至淡黃色撈出;油溫加熱至八成,再下鍋炸至金黃色撈出...
4.炒鍋留少許油燒熱,下入蔥花,姜末爆香,加入適量清水、醬油、醋、白糖、料酒、倒入排骨,燒開后用慢火煨至湯汁濃,排骨熟,淋上熟油,出鍋即可!
==== 糖醋排骨制作完成!

三、該模式設(shè)計(jì)原則

1 迪米特法則——最小知識(shí)原則

2 封裝變化部分

該圖進(jìn)一步展示了客戶端應(yīng)用程序,外觀模式和子系統(tǒng)內(nèi)部復(fù)雜應(yīng)用三者的關(guān)系.

四、使用場(chǎng)合

1. 一個(gè)軟件系統(tǒng)的復(fù)雜度比較高,需要一個(gè)更高級(jí)別的簡(jiǎn)單接口簡(jiǎn)化對(duì)子系統(tǒng)的操作時(shí)。

2. 當(dāng)使用端與實(shí)現(xiàn)類之間有太多的依賴性,需要降低使用端與子系統(tǒng)或子系統(tǒng)間的耦合性,增加子系統(tǒng)的獨(dú)立性時(shí)。

3. 當(dāng)子系統(tǒng)是相互依存的,需要層級(jí)化子系統(tǒng),簡(jiǎn)化子系統(tǒng)之間的相依性的時(shí)候,可以使用外觀模式。

五、外觀模式靜態(tài)類圖

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • SpringBoot整合TomCat實(shí)現(xiàn)本地圖片服務(wù)器代碼解析

    SpringBoot整合TomCat實(shí)現(xiàn)本地圖片服務(wù)器代碼解析

    這篇文章主要介紹了SpringBoot整合TomCat實(shí)現(xiàn)本地圖片服務(wù)器代碼解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • JAVA簡(jiǎn)單實(shí)現(xiàn)MD5注冊(cè)登錄加密實(shí)例代碼

    JAVA簡(jiǎn)單實(shí)現(xiàn)MD5注冊(cè)登錄加密實(shí)例代碼

    本篇文章主要介紹了JAVA簡(jiǎn)單實(shí)現(xiàn)MD5注冊(cè)登錄加密實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • 一文搞懂Java中對(duì)象池的實(shí)現(xiàn)

    一文搞懂Java中對(duì)象池的實(shí)現(xiàn)

    池化并不是什么新鮮的技術(shù),它更像一種軟件設(shè)計(jì)模式,主要功能是緩存一組已經(jīng)初始化的對(duì)象,以供隨時(shí)可以使用。本文將為大家詳細(xì)講講Java中對(duì)象池的實(shí)現(xiàn),需要的可以參考一下
    2022-07-07
  • Spring IOC源碼之bean的注冊(cè)過程講解

    Spring IOC源碼之bean的注冊(cè)過程講解

    這篇文章主要介紹了Spring IOC源碼之bean的注冊(cè)過程講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Win10?IDEA如何連接虛擬機(jī)中的Hadoop(HDFS)

    Win10?IDEA如何連接虛擬機(jī)中的Hadoop(HDFS)

    在虛擬機(jī)上配置Hadoop并修改core-site.xml文件,設(shè)置IP為局域網(wǎng)地址,IDEA中創(chuàng)建Maven項(xiàng)目,添加依賴,并檢查Hadoop重啟和端口轉(zhuǎn)發(fā),提供test.bat文件,通過修改IP簡(jiǎn)化使用過程
    2024-11-11
  • 使用?mybatis?自定義日期類型轉(zhuǎn)換器的示例代碼

    使用?mybatis?自定義日期類型轉(zhuǎn)換器的示例代碼

    這篇文章主要介紹了使用?mybatis?自定義日期類型轉(zhuǎn)換器的示例代碼,這里使用mybatis中的typeHandlers?實(shí)現(xiàn)的,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • 單一職責(zé)原則_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    單一職責(zé)原則_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要為大家詳細(xì)介紹了單一職責(zé)原則的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • SpringBoot2.0整合tk.mybatis異常解決

    SpringBoot2.0整合tk.mybatis異常解決

    本文主要介紹了SpringBoot2.0整合tk.mybatis異常,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • java聯(lián)系人管理系統(tǒng)簡(jiǎn)單設(shè)計(jì)

    java聯(lián)系人管理系統(tǒng)簡(jiǎn)單設(shè)計(jì)

    這篇文章主要為大家詳細(xì)介紹了java聯(lián)系人管理系統(tǒng)簡(jiǎn)單設(shè)計(jì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 詳解java 中的CAS與ABA

    詳解java 中的CAS與ABA

    這篇文章主要介紹了java 中的CAS與ABA的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-05-05

最新評(píng)論

甘孜县| 许昌市| 晴隆县| 秦皇岛市| 金寨县| 兖州市| 青铜峡市| 荔波县| 平果县| 来安县| 永年县| 灵川县| 闽侯县| 安平县| 泾阳县| 盐源县| 平原县| 滁州市| 纳雍县| 泰安市| 西华县| 象山县| 宜兰市| 彰化市| 荆州市| 阿鲁科尔沁旗| 马龙县| 象山县| 柳林县| 南康市| 色达县| 四川省| 博湖县| 山西省| 宜兰市| 广饶县| 射洪县| 金湖县| 镇宁| 墨江| 仪陇县|