• <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)  編輯 收藏 引用 所屬分類: 我的代碼玩具
            久久99热精品| 久久久久亚洲精品无码蜜桃 | 精品人妻伦九区久久AAA片69| 国产成人综合久久精品红| 人妻无码中文久久久久专区| 久久国产精品成人免费| 综合久久精品色| 久久精品国产亚洲网站| 亚洲欧美一级久久精品| 国产精品久久久久…| 日韩精品久久久久久久电影蜜臀| 久久国产视屏| 久久精品国产一区二区三区日韩| 无码国内精品久久人妻麻豆按摩| 国产精品久久国产精品99盘| 久久精品国产亚洲av麻豆图片| 久久久免费观成人影院| 九九久久99综合一区二区| 久久一日本道色综合久久| 综合久久给合久久狠狠狠97色| 久久国产精品二国产精品| 久久福利青草精品资源站| 久久久国产乱子伦精品作者| 午夜不卡久久精品无码免费| 国产精品久久久久久五月尺| 亚洲?V乱码久久精品蜜桃| 成人精品一区二区久久| 久久福利青草精品资源站| 国产精品久久永久免费| 国产精品久久久久久久久鸭| 久久91亚洲人成电影网站| 精品久久久久久国产| 久久久久久免费一区二区三区| 久久国产精品久久| 99久久久久| 久久www免费人成精品香蕉| 精品久久久久久国产三级| 精品熟女少妇aⅴ免费久久| 久久免费视频一区| 久久天天躁狠狠躁夜夜不卡| 久久国产精品99精品国产|