隨筆 - 117  文章 - 72  trackbacks - 0

          聲明:原創(chuàng)作品(標(biāo)有[原]字樣)轉(zhuǎn)載時請注明出處,謝謝。

          常用鏈接

          常用設(shè)置
          常用軟件
          常用命令
           

          訂閱

          訂閱

          留言簿(7)

          隨筆分類(130)

          隨筆檔案(123)

          搜索

          •  

          積分與排名

          • 積分 - 155795
          • 排名 - 390

          最新評論

          [關(guān)鍵字]:java,design pattern,設(shè)計模式,《Java與模式》學(xué)習(xí),門面模式,外觀模式,Facade Pattern
          [環(huán)境]:StarUML5.0 + JDK6
          [作者]:Winty (wintys@gmail.com) http://www.aygfsteel.com/wintys/
          [正文]:

          無門面模式時:

          有門面模式時:


          package pattern.facade;
          /**
           * 門面模式/外觀模式:Facade Pattern
           *
           * 保安系統(tǒng):
           * 一個保安系統(tǒng)由兩個錄像機、一個感應(yīng)器和一個報警器組成。
           * 由保安操作儀器的啟動和關(guān)閉:沒有使用門面模式時,保安必須親自啟動每個儀器。
           * @version 2009-6-15
           * @author Winty(wintys@gmail.com)
           */
          public class FacadeTest{
              public static void main(String[] args){
                  //無門面模式
                  Camera camera1,camera2;
                  camera1 = new Camera();
                  camera2 = new Camera();
                  
                  Sensor sensor;
                  sensor = new Sensor();

                  Alarm alarm;
                  alarm = new Alarm();

                  //啟動儀器
                  camera1.turnOn();
                  camera2.turnOn();
                  sensor.activate();
                  alarm.activate();
                  System.out.println("");

                  /////////////////////////////////
                  //使用門面模式
                  SecurityFacade security = new SecurityFacade();
                  security.start();
              }
          }

          /**
           * 門面:Facade
           */
          class SecurityFacade{
              private Camera camera1;
              private Camera camera2;
              private Sensor sensor;
              private Alarm alarm;

              public SecurityFacade(){
                  camera1 = new Camera();
                  camera2 = new Camera();
                  sensor = new Sensor();
                  alarm = new Alarm();
              }
              //啟動
              public void start(){
                  camera1.turnOn();
                  camera2.turnOn();
                  sensor.activate();
                  alarm.activate();
              }

              //停止
              public void stop(){
                  camera1.turnOff();
                  camera2.turnOff();
                  sensor.deactivate();
                  alarm.deactivate();
              }
          }

          class Camera{
              public void turnOn(){
                  System.out.println("turn on the Camera.");
              }

              public void turnOff(){
                  System.out.println("turn off the Camera.");
              }

              //轉(zhuǎn)動
              public void rotate(){
                  System.out.println("rotate the Camera.");
              }
          }


          class Sensor{
              public void activate(){
                  System.out.println("activate the sensor.");
              }

              public void deactivate(){
                  System.out.println("deactivate the sensor.");
              }

              //觸發(fā)感應(yīng)器
              public void trigger(){
                  System.out.println("trigger the sensor.");
              }
          }

          class Alarm{
              public void activate(){
                  System.out.println("activate the alarm.");
              }

              public void deactivate(){
                  System.out.println("deactivate the alarm.");
              }

              //拉響報警器
              public void ring(){
                  System.out.println("ring the alarm.");
              }
          }

          運行結(jié)果:
          turn on the Camera.
          turn on the Camera.
          activate the sensor.
          activate the alarm.

          turn on the Camera.
          turn on the Camera.
          activate the sensor.
          activate the alarm.
          posted on 2009-06-15 17:15 天堂露珠 閱讀(1177) 評論(2)  編輯  收藏 所屬分類: Pattern

          FeedBack:
          # re: [原]門面模式 2009-06-17 12:31 心夢帆影
          支持一下!
          想請教你一個問題:
          這些Java代碼是自己寫的還是由StartUML根據(jù)UML圖生成的?  回復(fù)  更多評論
            
          # re: [原]門面模式 2009-06-17 17:59 天堂露珠
          @心夢帆影
          可以生成部分代碼,但是我沒有使用自動生成。  回復(fù)  更多評論
            
          主站蜘蛛池模板: 类乌齐县| 新安县| 马尔康县| 杭锦后旗| 凤庆县| 苏尼特右旗| 吴旗县| 志丹县| 崇明县| 泰州市| 通榆县| 波密县| 长武县| 赤壁市| 宜昌市| 阿城市| 图片| 赤水市| 霍山县| 富民县| 铜山县| 钟山县| 香港 | 廉江市| 弥勒县| 泾源县| 陆丰市| 平远县| 余庆县| 图木舒克市| 永和县| 旌德县| 尉氏县| 绵阳市| 康定县| 永福县| 来安县| 建瓯市| 托克托县| 大城县| 龙里县|