您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何使用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. 模式分析
我們借用美食天下菜譜中制作糖醋排骨這一道菜來說明這一模式。
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)⒂蜔亮蔁?,下排骨炸至淡黃色撈出;油溫加熱至八成,再下鍋炸至金黃色撈出..."); } // 調(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)類圖
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何使用Java基于外觀模式實(shí)現(xiàn)美食天下食譜功能”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!
免責(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)容。