• <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)  編輯 收藏 引用 所屬分類: 我的代碼玩具
            久久99久久99精品免视看动漫 | 久久久久亚洲AV综合波多野结衣| 97久久精品国产精品青草| 国产情侣久久久久aⅴ免费| 国产精品激情综合久久| 久久精品视频一| 狠狠色丁香婷综合久久| 综合久久给合久久狠狠狠97色| 久久亚洲中文字幕精品有坂深雪 | 亚洲人成无码www久久久| 亚洲人成精品久久久久| 国产精品美女久久久网AV| 久久精品aⅴ无码中文字字幕不卡| 精品久久久久久亚洲精品 | 97超级碰碰碰久久久久| 久久人妻少妇嫩草AV蜜桃| 99久久精品免费看国产免费| 日本人妻丰满熟妇久久久久久| 久久久久18| 久久99精品久久久久久9蜜桃| 久久国产精品国产自线拍免费| 久久亚洲国产最新网站| 久久影视国产亚洲| 狠狠色综合网站久久久久久久| 国产精品久久久久影院嫩草| 久久天天躁夜夜躁狠狠| 久久青青色综合| 久久只有这精品99| 久久这里都是精品| 区久久AAA片69亚洲| 中文成人久久久久影院免费观看| 久久国产高清一区二区三区| 久久久久国产精品嫩草影院| 国产精品99久久久久久董美香| 婷婷综合久久中文字幕| 99精品伊人久久久大香线蕉| 精品无码久久久久久久动漫| 久久精品中文字幕有码| 日本高清无卡码一区二区久久| 亚洲国产天堂久久久久久| 伊人精品久久久久7777|