數據加載中……
          設計模式之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 結合 閱讀(714) 評論(0)  編輯  收藏 所屬分類: pattern


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


          網站導航:
           
          主站蜘蛛池模板: 富宁县| 安陆市| 寿阳县| 三门峡市| 固安县| 东乌珠穆沁旗| 唐河县| 松江区| 安多县| 丽江市| 依安县| 永宁县| 蓬安县| 客服| 南丹县| 拉萨市| 绥芬河市| 尚志市| 诸暨市| 塔河县| 霍城县| 育儿| 贵港市| 灵山县| 秦皇岛市| 托克托县| 阜康市| 余江县| 宜君县| 武定县| 获嘉县| 宜兴市| 邻水| 鄯善县| 乐业县| 巴楚县| 长宁区| 平原县| 镇远县| 洞头县| 长乐市|