數據加載中……
          設計模式之Command——電視篇

          大家都知道電視遙控器節目面板(ProgramPan)是由節目按鈕組成,通過選擇相應的節目按鈕,就可以切換到相應的節目屏道。

          下來讓我們看看如何實現通過遙控器按鈕選擇節目屏道的過程吧。

           

          1、在這里,先定義遙控器按鈕(RemoteControlButton)接口:

          public interface RemoteControlButton {

            public abstract void  selectProgram(); //選擇節目屏道

          }

          2、再定義遙控器按鈕(RemoteControlButton)接口的實現類:

          A:卡通節目按鈕(CartonProgramButton)類:

          public class CartonProgramButton implements RemoteControlButton{

            public void selectProgram() {

              System.out.println("選擇了卡通屏道!");

            }

          }

          B:電視劇節目按鈕(TvPlanProgramButton)類:

          public class TvPlanProgramButton implements RemoteControlButton {

            public void selectProgram() {

              System.out.println("選擇了電視劇屏道!");

            }

          }

          C:足球節目按鈕(FootProgramButton)類:

          public class FootProgramButton implements RemoteControlButton {

            public void selectProgram() {

              System.out.println("選擇了足球屏道!");

            }

          }

          3、遙控器節目面板(ProgramPan)類:用來控制節目按鈕,顯示節目

          public class ProgramPan {

            public static List programList() {

              List list = new ArrayList();  //節目屏道按鈕列表

              list.add(new CartonProgramButton()); //卡通屏道按鈕

              list.add(new TvPlanProgramButton()); //電視劇屏道按鈕

              list.add(new FootProgramButton());   //足球屏道按鈕

              return list;

            }

          }

          4、編寫測試類:

          public class TestCommand {

            public static void main(String[] args) {

              List list = ProgramPan.programList();  //獲得節目屏道按鈕

              for (Iterator it = list.iterator();it.hasNext();)

                ( (RemoteControlButton) it.next()).selectProgram();  //選擇節目屏道中對應的節目

            }

          }

          5、說明:

          ACommand說白了就是通過選擇一個個命令,然后執行相應動作。

          BCommand是對行為進行封裝的典型模式,在本例中通過遙控器節目面板(ProgramPan)這個封裝類來實現我們看電視節目的目的。

          CCommand模式和Facade(外觀)模式似乎比較相似。都是通過封裝類來進行訪問的。如何區分,對這點我也比較疑惑。

          posted on 2008-02-27 09:21 java flex 結合 閱讀(710) 評論(0)  編輯  收藏 所屬分類: pattern


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


          網站導航:
           
          主站蜘蛛池模板: 棋牌| 江油市| 台南县| 大邑县| 永和县| 文成县| 北流市| 水城县| 斗六市| 汝城县| 全椒县| 留坝县| 会同县| 长治市| 仁寿县| 库伦旗| 开远市| 肇州县| 郁南县| 肥乡县| 改则县| 怀安县| 夏津县| 大英县| 锦屏县| 抚顺县| 鸡西市| 南召县| 宝丰县| 浦县| 永胜县| 苗栗市| 鸡泽县| 兴海县| 新闻| 山丹县| 泸州市| 浦城县| 通化市| 周至县| 衡东县|