• <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
            <2008年11月>
            2627282930311
            2345678
            9101112131415
            16171819202122
            23242526272829
            30123456

            常用鏈接

            留言簿(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 閱讀(1228) 評論(0)  編輯 收藏 引用 所屬分類: 我的代碼玩具
            亚洲国产精品嫩草影院久久| 亚洲精品午夜国产VA久久成人| 久久人人爽人人爽人人爽| 欧美日韩中文字幕久久久不卡| 久久婷婷五月综合97色直播| 亚州日韩精品专区久久久| 久久精品国产亚洲AV香蕉| 精品久久无码中文字幕| 久久精品成人欧美大片| 精品国产乱码久久久久久呢 | 久久精品国产亚洲av瑜伽| 午夜视频久久久久一区| 国产V综合V亚洲欧美久久| 色播久久人人爽人人爽人人片AV | 久久综合丝袜日本网| 国产精品久久久久久五月尺| 99久久国语露脸精品国产| 2021国产精品久久精品| 麻豆精品久久精品色综合| 一本色道久久99一综合| 久久亚洲天堂| 国内精品久久久久国产盗摄| 国产精品美女久久久久久2018| 一本色道久久88综合日韩精品| 99久久精品影院老鸭窝| 久久人人爽人人爽人人片av高请| 久久午夜无码鲁丝片午夜精品| 久久九九全国免费| 99久久这里只有精品| 久久人妻少妇嫩草AV无码专区| 久久亚洲AV无码精品色午夜麻豆| 久久不见久久见免费影院www日本| 精品国产91久久久久久久| 亚洲伊人久久精品影院| 中文字幕人妻色偷偷久久| 狠狠色丁香久久婷婷综合蜜芽五月| 久久久久久亚洲精品不卡| 久久99精品综合国产首页| 日韩欧美亚洲综合久久影院d3| 久久青青草原综合伊人| 久久夜色精品国产亚洲|