亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java基于外觀模式實現美食天下食譜功能實例詳解

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

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

一、模式定義

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

二、模式舉例

1. 模式分析

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

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

3. 代碼示例

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

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

3.2 糖醋排骨實現類一Spareribs

package com.demo.common;
/**
 *
 * 糖醋排骨實現類
 *
 * @author
 *
 */
public class Spareribs implements ISpareribs {
  // 準備材料
  @Override
  public void prepair() {
    System.out.println("1.準備豬排骨500克,蔥末、姜末、醬油、花生油、白糖、醋、料酒、鹽各適量...");
  }
  // 腌制排骨
  @Override
  public void preserve() {
    System.out.println("2.將排骨洗凈剁成3厘米長段,用開水汆一下,撈出放盆內,加入鹽、醬油腌入味...");
  }
  // 炸排骨
  @Override
  public void fry() {
    System.out.println("3.炒鍋注油燒至六成熱,下排骨炸至淡黃色撈出;油溫加熱至八成,再下鍋炸至金黃色撈出...");
  }
  // 調汁
  @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 外觀實現一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() {
    // 準備材料
    this.spareribs.prepair();
    // 腌制排骨
    this.spareribs.preserve();
    // 炸排骨
    this.spareribs.fry();
    // 調汁
    this.spareribs.juice();
  }
}

3.5 客戶端測試

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

4. 運行結果

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

三、該模式設計原則

1 迪米特法則——最小知識原則

2 封裝變化部分

該圖進一步展示了客戶端應用程序,外觀模式和子系統(tǒng)內部復雜應用三者的關系.

四、使用場合

1. 一個軟件系統(tǒng)的復雜度比較高,需要一個更高級別的簡單接口簡化對子系統(tǒng)的操作時。

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

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

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

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

希望本文所述對大家java程序設計有所幫助。

相關文章

  • JAVA線程同步實例教程

    JAVA線程同步實例教程

    這篇文章主要介紹了JAVA線程同步實例教程,在Java程序設計中有著非常廣泛的應用,需要的朋友可以參考下
    2014-08-08
  • SpringBoot定時任務的實現詳解

    SpringBoot定時任務的實現詳解

    這篇文章主要介紹了SpringBoot定時任務的實現詳解,定時任務是企業(yè)級開發(fā)中最常見的功能之一,如定時統(tǒng)計訂單數、數據庫備份、定時發(fā)送短信和郵件、定時統(tǒng)計博客訪客等,簡單的定時任務可以直接通過Spring中的@Scheduled注解來實現,需要的朋友可以參考下
    2024-01-01
  • Java System類兩個常用方法代碼實例

    Java System類兩個常用方法代碼實例

    這篇文章主要介紹了Java System類兩個常用方法代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • mybatis如何實現的數據庫排序

    mybatis如何實現的數據庫排序

    這篇文章主要介紹了mybatis如何實現的數據庫排序,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • SpringBoot繼承LogStash實現日志收集的方法示例

    SpringBoot繼承LogStash實現日志收集的方法示例

    這篇文章主要介紹了SpringBoot繼承LogStash實現日志收集的方法示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • Java構造器使用方法及注意事項

    Java構造器使用方法及注意事項

    這篇文章主要介紹了Java構造器使用方法及注意事項的相關資料,這里舉例說明如何使用構造器及需要注意的地方,需要的朋友可以參考下
    2017-07-07
  • SpringBoot從繁至簡的框架基礎教程

    SpringBoot從繁至簡的框架基礎教程

    Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置
    2022-10-10
  • spring定時器定時任務到時間未執(zhí)行問題的解決

    spring定時器定時任務到時間未執(zhí)行問題的解決

    這篇文章主要介紹了spring定時器定時任務到時間未執(zhí)行問題的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Spring?Boot?如何通過ServletRequestHandledEvent事件實現接口請求的性能監(jiān)控

    Spring?Boot?如何通過ServletRequestHandledEvent事件實現接口請求的性能監(jiān)控

    在Spring框架中,監(jiān)控接口請求的性能可以通過ServletRequestHandledEvent事件實現,這篇文章給大家介紹Spring?Boot?如何通過ServletRequestHandledEvent事件實現接口請求的性能監(jiān)控,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • 使用BindingResult 自定義錯誤信息

    使用BindingResult 自定義錯誤信息

    這篇文章主要介紹了使用BindingResult 自定義錯誤信息,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10

最新評論