溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用Java基于外觀模式實(shí)現(xiàn)美食天下食譜功能

發(fā)布時(shí)間:2021-07-10 11:02:34 來源:億速云 閱讀:177 作者:小新 欄目:編程語言

這篇文章主要介紹了如何使用Java基于外觀模式實(shí)現(xiàn)美食天下食譜功能,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

具體如下:

一、模式定義

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

二、模式舉例

1. 模式分析

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

如何使用Java基于外觀模式實(shí)現(xiàn)美食天下食譜功能

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

如何使用Java基于外觀模式實(shí)現(xiàn)美食天下食譜功能

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)⒂蜔亮蔁?,下排骨炸至淡黃色撈出;油溫加熱至八成,再下鍋炸至金黃色撈出...");
  }
  // 調(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 封裝變化部分

如何使用Java基于外觀模式實(shí)現(xiàn)美食天下食譜功能

該圖進(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)類圖

如何使用Java基于外觀模式實(shí)現(xiàn)美食天下食譜功能

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何使用Java基于外觀模式實(shí)現(xiàn)美食天下食譜功能”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI