• <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>
            隨筆-91  評(píng)論-137  文章-0  trackbacks-0

            工廠方法模式

            前序

            小菜同學(xué)有個(gè)同學(xué)叫薛磊風(fēng),他做人很低調(diào),經(jīng)常去勤工儉學(xué).但不巧的是星期天他走在路上被車撞了,并送進(jìn)了醫(yī)院.他在醫(yī)院中對(duì)小菜和他的同學(xué)們說,他經(jīng)常去幫助以為老奶奶,但是現(xiàn)在他被車撞傷了,沒辦法繼續(xù)去幫助那位老奶奶了.應(yīng)此他希望小菜和其他同學(xué)能夠幫助他去照顧那位老奶奶,如果老奶奶問起他們的名字時(shí)不要提任何人的名字,說是學(xué)雷鋒做好事就行了.

            社區(qū)志愿者也可以幫助老奶奶,應(yīng)此幫助老奶奶的對(duì)象就可分為(學(xué)雷鋒的大學(xué)生和社區(qū)志愿者),請(qǐng)你用工廠方法模式來設(shè)計(jì)出幫助老奶奶這件事.

            工廠方法模式

            核心工廠類不再負(fù)責(zé)所有產(chǎn)品的創(chuàng)建,而是將具體創(chuàng)建的工作交給子類去做,成為一個(gè)抽象工廠角色,僅負(fù)責(zé)給出具體工廠類必須實(shí)現(xiàn)的接口,而不接觸哪一個(gè)產(chǎn)品類應(yīng)當(dāng)被實(shí)例化這種細(xì)節(jié)。

            實(shí)現(xiàn)方法(UML類圖)

            實(shí)現(xiàn)代碼

            #include <stdio.h>

             

            // 雷鋒

            class LeiFeng

            {

            public:

                   void Sweep()

                   {

                          printf("掃地\n");

                   }

                  

                   void Wash()

                   {

                          printf("洗衣\n");

                   }

                  

                   void BuyRice()

                   {

                          printf("買米\n");

                   }

            };

             

            // 學(xué)雷鋒的大學(xué)生

            class Undergraduate : public LeiFeng

            {

            public:

            };

             

            // 社區(qū)志愿者

            class Volunterr : public LeiFeng

            {

            public:

            };

             

            // 雷鋒工廠

            class IFactory

            {

            public:

                   virtual LeiFeng* CreateLeiFeng()=0;

            };

             

            // 學(xué)雷鋒的大學(xué)生工廠

            class UndergraduateFactory : public IFactory

            {

            public:

                   virtual LeiFeng* CreateLeiFeng()

                   {

                          return new Undergraduate();

                   }

            };

             

            // 社區(qū)志愿者工廠

            class VolunterrFactory : public IFactory

            {

            public:

                   virtual LeiFeng* CreateLeiFeng()

                   {

                          return new Volunterr();

                   }

            };

             

            int main()

            {

                   IFactory* factory = new UndergraduateFactory();

                   LeiFeng* student = factory->CreateLeiFeng();

                  

                   student->BuyRice();

                   student->Sweep();

                   student->Wash();

                  

                   delete factory;

                   delete student;

                   return 0;

            }

            運(yùn)行結(jié)果

            買米

            掃地

            洗衣


            所有文件打包下載
            posted on 2011-05-10 19:41 lwch 閱讀(1840) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 設(shè)計(jì)模式
            91久久精品无码一区二区毛片| 伊人伊成久久人综合网777| 久久香蕉超碰97国产精品 | 91精品国产高清久久久久久91| www.久久热.com| 久久笫一福利免费导航| 久久精品无码一区二区无码 | 亚洲精品tv久久久久| 久久久久久亚洲Av无码精品专口| 99久久精品国产麻豆| 久久久久久久综合狠狠综合| 国产亚洲美女精品久久久久狼| 久久丝袜精品中文字幕| 99久久无码一区人妻a黑| 免费精品久久久久久中文字幕| 成人久久精品一区二区三区| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 久久久精品午夜免费不卡| 污污内射久久一区二区欧美日韩| 久久久无码精品亚洲日韩按摩| 国产一区二区精品久久岳| 国产亚洲精品美女久久久| 久久久久亚洲av综合波多野结衣| 国内精品久久久久久99| 久久精品国产99国产精品导航| 久久人人爽人爽人人爽av| 品成人欧美大片久久国产欧美| 久久久久久亚洲Av无码精品专口 | 国产香蕉97碰碰久久人人| 久久精品国产网红主播| 久久久久久久久久久| 欧美亚洲国产精品久久久久| 日本欧美国产精品第一页久久| 99久久成人18免费网站| 青青热久久综合网伊人| 麻豆精品久久精品色综合| 狠狠色婷婷综合天天久久丁香 | 日韩va亚洲va欧美va久久| 狠狠色丁香婷婷综合久久来来去| 国产69精品久久久久99尤物| 精品久久久久久久久久中文字幕 |