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程序設計有所幫助。
相關文章
SpringBoot繼承LogStash實現日志收集的方法示例
這篇文章主要介紹了SpringBoot繼承LogStash實現日志收集的方法示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05Spring?Boot?如何通過ServletRequestHandledEvent事件實現接口請求的性能監(jiān)控
在Spring框架中,監(jiān)控接口請求的性能可以通過ServletRequestHandledEvent事件實現,這篇文章給大家介紹Spring?Boot?如何通過ServletRequestHandledEvent事件實現接口請求的性能監(jiān)控,感興趣的朋友跟隨小編一起看看吧2024-08-08