用我的實習生活詮釋門面(Facade)模式

          門面模式要求一個子系統的外部與其內部的通信必須通過一個統一的門面對象進行。門面模式提供了一個高層次的接口,使得子系統更易于使用。閑言少敘,下面我就將我早上離開家和晚上回到家的習慣動作抽象為符合門面模式的Java代碼。

          門面角色:

          /*
           *@author 我為J狂 建立日期 2007-4-30
           *
           
          */

          package net.blogjava.lzqdiy.facade;

          public class Life
          {
              
          private Door door=new Door();

              
          private Light light=new Light();

              
          private PC pc=new PC();
              
          //離開家
              public void leaveHome()
              
          {
                  pc.turnOff();
          //關閉電腦
                  light.turnOff();//關上燈
                  door.close();//關上門
              }

              
          //回到家
              public void goBackHome()
              
          {
                  door.open();
          //打開門
                  light.turnOn();//打開燈
                  pc.turnOn();//啟動電腦
              }

          }

          子系統角色:

          /*
           *@author 我為J狂 建立日期 2007-4-30
           *
           
          */

          package net.blogjava.lzqdiy.facade;

          public class Door
          {
              
          private Key key = new Key();

              
          public void open()
              
          {
                  key.use(
          "開門");
                  System.out.println(
          "門已經打開!");
              }


              
          public void close()
              
          {
                  key.use(
          "關門");
                  System.out.println(
          "門已經關閉!");
              }

          }

          /*
          *@author 我為J狂 建立日期 2007-4-30
          *
          */

          package net.blogjava.lzqdiy.facade;

          public class Light
          {
              
          public void turnOn()
              
          {
                  System.out.println(
          "電燈已經打開!");
              }

              
          public void turnOff()
              
          {
                  System.out.println(
          "電燈已經關閉!");
              }

          }

          /*
          *@author 我為J狂 建立日期 2007-4-30
          *
          */

          package net.blogjava.lzqdiy.facade;

          public class PC
          {
              
          public void turnOn()
              
          {
                   System.out.println(
          "電腦已經打開!");
              }


              
          public void turnOff()
              
          {
                  System.out.println(
          "電腦已經關閉!");
              }

          }

          /*
          *@author 我為J狂 建立日期 2007-4-30
          *
          */

          package net.blogjava.lzqdiy.facade;

          public class Key
          {
             
          public void use(String action)
             
          {
                 System.out.println(
          "使用鑰匙"+action+"!");
             }

          }

          客戶端:

          /*
          *@author 我為J狂 建立日期 2007-4-30
          *
          */

          package net.blogjava.lzqdiy.facade;

          public class Client
          {

              
          private static Life life=new Life();
              
          public static void main(String[] args)
              
          {
                 System.out.println(
          "一天忙碌的生活開始了.");
                 life.leaveHome();
                 System.out.println(
          "呵呵,回家了.");
                 life.goBackHome();
              }

          }

          在北京中關村實習期間,我的生活就是這樣的,呵呵。注:程序中的電腦是指我家里的notebook,用于娛樂。

          posted on 2007-04-30 15:11 我為J狂 閱讀(1141) 評論(0)  編輯  收藏 所屬分類: 設計模式

          <2007年4月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿(11)

          隨筆分類(48)

          文章分類(29)

          常去逛逛

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 清镇市| 西吉县| 山阳县| 黄骅市| 榆中县| 沽源县| 兰考县| 垦利县| 平南县| 伊川县| 南乐县| 徐州市| 凉山| 九龙县| 枝江市| 崇礼县| 永德县| 双鸭山市| 阿尔山市| 江油市| 南安市| 榆中县| 邳州市| 民县| 五家渠市| 广昌县| 广安市| 昂仁县| 和硕县| 开鲁县| 北票市| 泽州县| 黄骅市| 外汇| 积石山| 汽车| 陇川县| 岳池县| 遂溪县| 闸北区| 伊宁市|