Java世界

          學習筆記

          常用鏈接

          統(tǒng)計

          積分與排名

          天籟村

          新華網(wǎng)

          雅虎

          最新評論

          簡單詮釋門面(Facade)模式

          ??????? 門面模式要求一個子系統(tǒng)的外部與其內部的通信必須通過一個統(tǒng)一的門面對象進行。門面模式提供了一個高層次的接口,使得子系統(tǒng)更易于使用。閑言少敘,下面我就將我早上離開家和晚上回到家的習慣動作抽象為符合門面模式的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(); // 啟動電腦
          ????}

          }

          子系統(tǒng)角色:

          /*
          ?*@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(
          " 門已經(jīng)打開! " );
          ????}


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

          }

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

          package ?net.blogjava.lzqdiy.facade;

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

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

          }

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

          package ?net.blogjava.lzqdiy.facade;

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


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

          }

          /*
          *@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();
          ????}

          }



          祝,大家享受其中的快樂!

          posted on 2008-02-28 15:37 Rabbit 閱讀(220) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 镇康县| 香河县| 东乡县| 潼关县| 南溪县| 盘锦市| 东兰县| 班戈县| 藁城市| 敦化市| 英德市| 宝兴县| 白朗县| 永仁县| 柳江县| 淄博市| 龙口市| 高阳县| 同仁县| 大足县| 九江县| 乐亭县| 靖边县| 临澧县| 安福县| 大荔县| 璧山县| 古交市| 南漳县| 临洮县| 鄂伦春自治旗| 布尔津县| 渝中区| 青河县| 铁岭市| 诸暨市| 苍山县| 屯昌县| 商丘市| 永安市| 砚山县|