• <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)  編輯 收藏 引用 所屬分類: 我的代碼玩具
            国产69精品久久久久99尤物| 久久精品国产乱子伦| 久久精品视频网| 91精品国产91热久久久久福利| 日本福利片国产午夜久久| 国产精品热久久无码av| 亚洲精品乱码久久久久久久久久久久 | 人妻无码αv中文字幕久久琪琪布| 亚洲国产精品无码久久一线| 久久―日本道色综合久久| 香蕉久久久久久狠狠色| 欧美久久综合性欧美| 亚洲中文久久精品无码| 色8激情欧美成人久久综合电| 久久久久无码精品国产| 伊人久久大香线蕉成人| 国产综合成人久久大片91| 久久综合国产乱子伦精品免费| 久久久久久久国产免费看| 99久久99久久久精品齐齐| 亚洲午夜无码久久久久| 一本综合久久国产二区| 精品久久久久久国产三级| 四虎国产精品免费久久5151 | 九九精品99久久久香蕉| 久久亚洲AV成人无码| 久久91精品国产91久| 青青草原综合久久大伊人| 久久精品综合网| 精品久久久无码21p发布| 欧美日韩精品久久久免费观看| 国产精品激情综合久久| av无码久久久久久不卡网站 | 久久人人爽人人爽人人AV| 久久天天躁狠狠躁夜夜2020一| 亚洲国产成人久久综合野外 | 久久亚洲私人国产精品vA| 麻豆一区二区99久久久久| 久久久久久久人妻无码中文字幕爆| 精品熟女少妇AV免费久久| 久久综合九色综合网站|