paulwong

          門(mén)面模式 - Facade Pattern

          無(wú)門(mén)面模式時(shí):
          有門(mén)面模式時(shí):

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

                  Alarm alarm;
                  alarm 
          = new Alarm();

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

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

          /**
           * 門(mén)面: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();
              }
              
          //啟動(dòng)
              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)動(dòng)
              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.");
              }

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


          運(yùn)行結(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-17 00:00 paulwong 閱讀(391) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Design Pattern

          主站蜘蛛池模板: 瓦房店市| 玛纳斯县| 崇州市| 正镶白旗| 南昌县| 宜州市| 厦门市| 普宁市| 河东区| 郁南县| 普兰店市| 平安县| 沙田区| 乐东| 永吉县| 高淳县| 闻喜县| 东至县| 东乌珠穆沁旗| 旌德县| 托克托县| 宣化县| 镇安县| 祁东县| 广灵县| 南投市| 襄城县| 石家庄市| 泾川县| 上犹县| 专栏| 乐安县| 贡觉县| 论坛| 沂南县| 康定县| 榆中县| 图们市| 商水县| 易门县| 定西市|