【外觀模式應用場景舉例】
比如在玩“極品飛車”這款遊戲,你只需要等待的就是倒計時到0時以最快的車速衝到第一名,但遊戲者根本沒有想過在車衝出去之前要做哪些工作,比如掛檔,離合器,油箱檢測,調整方向等等的微操作,將這些微操作封裝起來變成一個接口就是外觀模式了。在WEB開發中的MVC分層架構就是典型的一個外觀模式,每一層將操作的具體內容隱藏起來,保留一個接口供上層調用。
【外觀模式解釋】
類型:結構模式
爲子系統中的一組接口提供一個一致的interface接口界面。
【外觀模式UML圖】
【外觀模式-JAVA代碼實現】
新建賽車類:
package car_package; public class car { public void start() { System.out.println("車子已啓動"); } public void check_stop() { System.out.println("剎車檢查"); } public void check_box() { System.out.println("檢查油箱"); } public void check_console() { System.out.println("檢查儀表盤是否異常"); } } |
新建賽車操作的外觀類:
package car_facade; import car_package.car; public class car_facade_imple { public void car_go_go(car car_ref) { car_ref.check_box(); car_ref.check_console(); car_ref.check_stop(); car_ref.start(); } } |
新建客戶端運行類:
package run_main; import car_facade.car_facade_imple; import car_package.car; public class run_main { public static void main(String[] args) { car_facade_imple car_facade_imple_ref = new car_facade_imple(); car_facade_imple_ref.car_go_go(new car()); } } |
程序運行結果如下:
檢查油箱 檢查儀表盤是否異常 剎車檢查 車子已啓動 |
很簡單吧,將子操作用一個外觀接口封裝起來,然後調用這個接口就是調用那些非常複雜的微操作了。
【外觀模式-MyEclipse6項目JAVA代碼實現】
外觀模式facade示例代碼:點擊