• <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>
            蝸牛的家
            男兒當自強
            posts - 48,  comments - 21,  trackbacks - 0
            1 適用性
            \• 在不影響其他對象的情況下,以動態、透明的方式給單個對象添加一些職責,如:加密層,解密層。
            • 處理那些可能偶爾才會用到的特性接口
            • 當不能采用生成子類的方法進行擴充時。一種情況是,可能有大量獨立的擴展,為支持
            每一種組合將產生大量的子類,使得子類數目呈爆炸性增長
            #include "stdafx.h"
            #include 
            <iostream>
            using namespace std;


            class Component            //被裝飾者抽象類
            {
            public:
                
            virtual void Draw() = 0;
            };
            class Decorator : public Component //被裝飾者基類
            {
            public:
                Decorator(Component 
            *c) : _component(c){}
                
            ~Decorator() {delete _component;}

                
            virtual void Draw() { if (_component) _component->Draw();}
            private:
                Component 
            *_component;
            };
            //////////////////////////////////////////////////////////////////////////
            class MyComponent : public Component //被裝飾者
            {
            public:
                
            virtual void Draw() {cout << "MyComponent::Draw()" << endl;}
            };
            //////////////////////////////////////////////////////////////////////////
            class BorderDecorator : public Decorator //邊框裝飾
            {
            public:
                BorderDecorator(Component 
            *c) : Decorator(c){}
                
            virtual void Draw()
                {
                    cout 
            << "DrawBorder" << endl;
                    Decorator::Draw();
                }
            };
            class ScrollDecorator : public Decorator //滾動條裝飾
            {
            public:
                ScrollDecorator(Component 
            *c) : Decorator(c){}
                
            virtual void Draw()
                {
                    cout 
            << "DrawSrollbar" << endl;
                    Decorator::Draw();
                }
            };
            int main()
            {
                Component 
            *c2 = new BorderDecorator(
                    
            new MyComponent()); //裝飾邊框的組件
                c2->Draw();
                delete c2;

                Component 
            *c3 = new ScrollDecorator(
                    
            new BorderDecorator(
                    
            new MyComponent())); //同時裝飾上邊框和滾動條的組件
                c2->Draw();
                delete c3;

                system(
            "pause");
                
            return 0;
            }
            posted on 2009-01-16 15:58 黑色天使 閱讀(378) 評論(0)  編輯 收藏 引用 所屬分類: 設計模式

            <2009年2月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            1234567

            常用鏈接

            留言簿(2)

            隨筆分類

            隨筆檔案

            文章檔案

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            开心久久婷婷综合中文字幕| 久久国产精品99国产精| 久久亚洲国产午夜精品理论片 | 国产成人久久精品激情 | 国产精品一区二区久久精品涩爱| 日韩一区二区三区视频久久| 亚洲精品无码久久久久sm| 国产精品久久亚洲不卡动漫| 久久久无码精品午夜| 国产成人精品免费久久久久| 色婷婷综合久久久久中文字幕| 亚洲va久久久噜噜噜久久天堂| 色综合久久中文色婷婷| 久久SE精品一区二区| 国产亚洲美女精品久久久| 亚洲国产精品久久电影欧美| 精品久久久久久无码人妻蜜桃| 婷婷伊人久久大香线蕉AV| 久久九九免费高清视频| 久久精品国产久精国产思思| 伊人情人综合成人久久网小说| 久久综合狠狠色综合伊人| 色偷偷久久一区二区三区| 中文字幕久久精品| 久久五月精品中文字幕| 久久综合综合久久狠狠狠97色88| 伊人久久大香线蕉综合Av| 欧美久久亚洲精品| 欧美久久久久久精选9999| 久久久久久人妻无码| 一本一本久久A久久综合精品| 日批日出水久久亚洲精品tv| 久久午夜福利电影| 97香蕉久久夜色精品国产| 久久亚洲精品国产亚洲老地址| 老司机午夜网站国内精品久久久久久久久 | 亚洲国产成人精品女人久久久 | 97久久久久人妻精品专区| 无码AV中文字幕久久专区| 人妻少妇久久中文字幕一区二区| 亚洲人成网站999久久久综合|