• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 181  文章 - 15  trackbacks - 0
            <2009年3月>
            22232425262728
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            My Tech blog

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            1、命令管理器管理命令

            clip_image0023

            void testCommandManagerArrangeCommand()
            {
                cout<<">>>>>>>>>>>>命令管理器調度命令 <<<<<<<<<<<<"<<endl;
                CDeleteCommand *pCommand1=new CDeleteCommand("obj1");
                CDeleteCommand *pCommand2=new CDeleteCommand("obj2");
                CDeleteCommand *pCommand3=new CDeleteCommand("obj3");
                CDeleteCommand *pCommand4=new CDeleteCommand("obj4");

                CCommandManager manager;
                manager.Do(pCommand1);
                manager.Do(pCommand2);
                manager.Do(pCommand3);
                manager.Undo();
                manager.Undo();
                manager.Redo();
                manager.Undo();
                manager.Do(pCommand4);
                manager.Undo();
                manager.Redo();
            }

            執行效果:

            >>>>>>>>>>>>命令管理器調度命令<<<<<<<<<<<<
            obj1 is deleted.
            obj2 is deleted.
            obj3 is deleted.
            obj3 is undeleted.
            obj2 is undeleted.
            obj2 is deleted.
            obj2 is undeleted.
            obj4 is deleted.
            obj4 is undeleted.
            obj4 is deleted.

            2、命令管理器管理命令管理器

            //命令管理器調度命令管理器
            void testCommandManagerArrangeCommandManager()
            {
                cout<<">>>>>>>>>>>>命令管理器調度命令管理 器<<<<<<<<<<<<"<<endl;
                CDeleteCommand *pCommand1=new CDeleteCommand("cm1--obj1");
                CDeleteCommand *pCommand2=new CDeleteCommand("cm1--obj2");
                CDeleteCommand *pCommand3=new CDeleteCommand("cm1--obj3");
                CDeleteCommand *pCommand4=new CDeleteCommand("cm2--obj1");
                CDeleteCommand *pCommand5=new CDeleteCommand("cm2--obj2");
                CDeleteCommand *pCommand6=new CDeleteCommand("cm2--obj3");
                CCommandManager cm1;
                CCommandManager cm2;
                CCommandManager cmMain;
                cm1.SetParentCommandManager(&cmMain);
                cm2.SetParentCommandManager(&cmMain);
                cm1.Do(pCommand1);
                cm2.Do(pCommand4);
                cm1.Do(pCommand2);
                cm2.Do(pCommand5);
                cm1.Do(pCommand3);
                cm2.Do(pCommand6);
                cmMain.Undo();
                cmMain.Undo();
                cmMain.Undo();
                cmMain.Redo();
                cmMain.Undo();

            }

            執行效果:

            >>>>>>>>>>>>命令管理器調度命令管理器<<<<<<<<<<<<
            cm1--obj1 is deleted.
            cm2--obj1 is deleted.
            cm1--obj2 is deleted.
            cm2--obj2 is deleted.
            cm1--obj3 is deleted.
            cm2--obj3 is deleted.
            cm2--obj3 is undeleted.
            cm1--obj3 is undeleted.
            cm2--obj2 is undeleted.
            cm2--obj2 is deleted.
            cm2--obj2 is undeleted.

            注意:

            1、確保命令的Execute和UnExecute是完全可逆的操作。

            2、要保障Execute和UnExecute的可逆性,特別要關注他們執行的環境(比如繪圖的時候,這些操作要有同樣的尺寸標準,否則很難實現互逆的操作)。

            3、注意不要插入空命令。

            代碼

            posted on 2008-03-16 23:23 littlegai 閱讀(1225) 評論(0)  編輯 收藏 引用 所屬分類: 我的代碼玩具
            色婷婷综合久久久久中文字幕| 亚洲性久久久影院| 久久久久青草线蕉综合超碰| 伊人久久大香线蕉综合Av| 国产精品久久网| 欧美性猛交xxxx免费看久久久| 亚洲婷婷国产精品电影人久久 | 久久久久se色偷偷亚洲精品av| 狠狠色综合网站久久久久久久高清| 久久久久亚洲AV无码永不| 日韩久久久久中文字幕人妻| 久久久久青草线蕉综合超碰| 国产成人无码精品久久久久免费| 亚洲国产欧美国产综合久久| 亚洲成av人片不卡无码久久 | 中文字幕精品无码久久久久久3D日动漫| 人妻无码精品久久亚瑟影视| 九九久久精品无码专区| 99精品伊人久久久大香线蕉| 国产成人久久AV免费| 人妻无码中文久久久久专区| 亚洲精品无码专区久久同性男| 久久久久亚洲精品无码蜜桃| 亚洲人成电影网站久久| 精品久久久久久久国产潘金莲| 久久精品免费观看| 精品久久综合1区2区3区激情| 欧美精品久久久久久久自慰| 亚洲欧美久久久久9999| 久久97久久97精品免视看秋霞| 久久久久综合网久久| 精品久久人人爽天天玩人人妻| 久久精品黄AA片一区二区三区| 一本一本久久a久久综合精品蜜桃| 国产AⅤ精品一区二区三区久久| 久久久久99精品成人片直播| 中文字幕热久久久久久久| 久久99精品国产麻豆宅宅| 777午夜精品久久av蜜臀| 香蕉久久夜色精品国产尤物 | 色婷婷久久综合中文久久蜜桃av|