小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

外觀模式——美食天下

 WindySky 2018-02-25

一模式定義

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

 

二模式舉例

1模式分析

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



 

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


 

3代碼示例

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

Java代碼  收藏代碼
  1. package com.demo.common;  
  2.   
  3. /** 
  4.  * 糖醋排骨接口 
  5.  *  
  6.  * @author 
  7.  *  
  8.  */  
  9. public interface ISpareribs {  
  10.     // 準(zhǔn)備材料  
  11.     public void prepair();  
  12.   
  13.     // 腌制排骨  
  14.     public void preserve();  
  15.   
  16.     // 炸排骨  
  17.     public void fry();  
  18.   
  19.     // 調(diào)汁  
  20.     public void juice();  
  21.   
  22. }  

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

Java代碼  收藏代碼
  1. package com.demo.common;  
  2.   
  3. /** 
  4.  *  
  5.  * 糖醋排骨實現(xiàn)類 
  6.  *  
  7.  * @author 
  8.  *  
  9.  */  
  10. public class Spareribs implements ISpareribs {  
  11.     // 準(zhǔn)備材料  
  12.     @Override  
  13.     public void prepair() {  
  14.         System.out.println("1.準(zhǔn)備豬排骨500克,蔥末、姜末、醬油、花生油、白糖、醋、料酒、鹽各適量...");  
  15.     }  
  16.   
  17.     // 腌制排骨  
  18.     @Override  
  19.     public void preserve() {  
  20.         System.out.println("2.將排骨洗凈剁成3厘米長段,用開水汆一下,撈出放盆內(nèi),加入鹽、醬油腌入味...");  
  21.     }  
  22.   
  23.     // 炸排骨  
  24.     @Override  
  25.     public void fry() {  
  26.         System.out.println("3.炒鍋注油燒至六成熱,下排骨炸至淡黃色撈出;油溫加熱至八成,再下鍋炸至金黃色撈出...");  
  27.     }  
  28.   
  29.     // 調(diào)汁  
  30.     @Override  
  31.     public void juice() {  
  32.         System.out  
  33.                 .println("4.炒鍋留少許油燒熱,下入蔥花,姜末爆香,加入適量清水、醬油、醋、白糖、料酒、倒入排骨,燒開后用慢火煨至湯汁濃,排骨熟,淋上熟油,出鍋即可!");  
  34.   
  35.     }  
  36.   
  37. }  

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

Java代碼  收藏代碼
  1. package com.demo.facade;  
  2.   
  3. /** 
  4.  * 外觀模式制作糖醋排骨 
  5.  *  
  6.  * @author 
  7.  *  
  8.  */  
  9. public interface ICookFacade {  
  10.     // 做糖醋排骨  
  11.     public void cookSpareribs();  
  12. }  

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

Java代碼  收藏代碼
  1. package com.demo.facade;  
  2.   
  3. import com.demo.common.ISpareribs;  
  4. import com.demo.common.Spareribs;  
  5.   
  6. /** 
  7.  * 外觀模式制作糖醋排骨 
  8.  *  
  9.  * @author 
  10.  *  
  11.  */  
  12. public class CookFacade implements ICookFacade {  
  13.     // 糖醋排骨排骨接口  
  14.     private final ISpareribs spareribs = new Spareribs();  
  15.   
  16.     // 做糖醋排骨  
  17.     public void cookSpareribs() {  
  18.         // 準(zhǔn)備材料  
  19.         this.spareribs.prepair();  
  20.         // 腌制排骨  
  21.         this.spareribs.preserve();  
  22.         // 炸排骨  
  23.         this.spareribs.fry();  
  24.         // 調(diào)汁  
  25.         this.spareribs.juice();  
  26.     }  
  27. }  

3.5客戶端測試

Java代碼  收藏代碼
  1. package com.demo;  
  2.   
  3. import com.demo.facade.CookFacade;  
  4. import com.demo.facade.ICookFacade;  
  5.   
  6. /** 
  7.  * 客戶端應(yīng)用程序 
  8.  *  
  9.  * @author 
  10.  *  
  11.  */  
  12. public class Client {  
  13.     public static void main(String[] args) {  
  14.         // 開始做糖醋排骨了!  
  15.         System.out.println("==== 開始做糖醋排骨...");  
  16.         // // 創(chuàng)建糖醋排骨對象實例  
  17.         // ISpareribs spareribs = new Spareribs();  
  18.         // // 準(zhǔn)備材料  
  19.         // spareribs.prepair();  
  20.         // // 腌制排骨  
  21.         // spareribs.preserve();  
  22.         // // 炸排骨  
  23.         // spareribs.fry();  
  24.         // // 調(diào)汁  
  25.         // spareribs.juice();  
  26.   
  27.         ICookFacade cookFacade = new CookFacade();  
  28.         cookFacade.cookSpareribs();  
  29.         System.out.println("==== 糖醋排骨制作完成!");  
  30.     }  
  31. }  

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

==== 開始做糖醋排骨...

1.準(zhǔn)備豬排骨500克,蔥末、姜末、醬油、花生油、白糖、醋、料酒、鹽各適量...

2.將排骨洗凈剁成3厘米長段,用開水汆一下,撈出放盆內(nèi),加入鹽、醬油腌入味...

3.炒鍋注油燒至六成熱,下排骨炸至淡黃色撈出;油溫加熱至八成,再下鍋炸至金黃色撈出...

4.炒鍋留少許油燒熱,下入蔥花,姜末爆香,加入適量清水、醬油、醋、白糖、料酒、倒入排骨,燒開后用慢火煨至湯汁濃,排骨熟,淋上熟油,出鍋即可!

==== 糖醋排骨制作完成!

 

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

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

2 封裝變化部分



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

 

四使用場合

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

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

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

 

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



 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多