• 设计模式之 组合模式


    class Graph
    {
    public:
        Graph(void);
        virtual ~Graph(void);
    public:
        virtual void bounds(const Rect&);
        virtual void draw(void);
        virtual void intersects(const Point &point);
        virtual void insert(Graph *graph);
        virtual Graph* getParent(void){ return NULL; }
    };
    
    class Rectangle : public Graph
    {
    public:
        Rectangle(void);
        ~Rectangle(void);
    public:
        virtual void bounds(const Rect&);
        virtual void draw(void);
        virtual void intersects(const Point &point);
    };
    
    class Composition: public Graph
    {
    public:
        Composition(void);
        virtual ~Composition(void);
    
    public:
        virtual void draw(void);
        virtual void insert(Graph *graph);
    
    protected:
        vector<Graph*> graphList_;
        vector<Compositor*> compositor_;
    };
    
    class Compositor
    {
    public:
        Compositor(void);
        virtual ~Compositor(void);
    public:
        void setComposition(Composition *pCom);
        virtual void compose(void);
    };
    
    class TextCompositor: public Compositior
    {
    public:
        TextCompositor(void);
        ~TextCompositor(void);
    public:
        virtual void compose(void);
    };
  • 相关阅读:
    时尚前沿的图片左右滚动效果-1
    瀑布流效果
    js遮罩层弹出显示效果组件化
    javascript学习笔记(三)
    前端开发技巧
    Pushlet后台推送
    比较抽象的面试题
    技术点
    HTML5特性
    struts2学习笔记(二)
  • 原文地址:https://www.cnblogs.com/foreverstars/p/4690144.html
Copyright © 2020-2023  润新知