Posted on 2009-01-20 17:31
非洲小白臉 閱讀(733)
評(píng)論(0) 編輯 收藏 所屬分類:
模式
設(shè)計(jì)模式-快餐簡(jiǎn)解-【外觀模式】
【
外觀模式應(yīng)用場(chǎng)景舉例】
比如在玩“極品飛車”這款游戲,你只需要等待的就是倒計(jì)時(shí)到0時(shí)以最快的車速?zèng)_到第一名,但游戲者根本沒有想過在車沖出去之前要做哪些工作,比如掛
檔,離合器,油箱檢測(cè),調(diào)整方向等等的微操作,將這些微操作封裝起來變成一個(gè)接口就是外觀模式了。在WEB開發(fā)中的MVC分層架構(gòu)就是典型的一個(gè)外觀模
式,每一層將操作的具體內(nèi)容隱藏起來,保留一個(gè)接口供上層調(diào)用。
【
外觀模式解釋】
類型:結(jié)構(gòu)模式
為子系統(tǒng)中的一組接口提供一個(gè)一致的interface接口界面。
【
外觀模式UML圖】
【
外觀模式-JAVA代碼實(shí)現(xiàn)】
新建賽車類:
package car_package;
public class car {
public void start() {
System.out.println("車子已啟動(dòng)");
}
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();
}
}
新建客戶端運(yùn)行類:
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());
}
}
程序運(yùn)行結(jié)果如下:
檢查油箱
檢查儀表盤是否異常
剎車檢查
車子已啟動(dòng)
很簡(jiǎn)單吧,將子操作用一個(gè)外觀接口封裝起來,然后調(diào)用這個(gè)接口就是調(diào)用那些非常復(fù)雜的微操作了。