zoukankan      html  css  js  c++  java
  • c++ (proxy)代理模式

    假设我们有几个具有相似的窗体,都包含关闭窗体(closeButton)和按钮单击事件(ClickButton)我们在处理时,不想直接操作每个窗体,可以请求代理。

    #include<iostream>
    using namespace std;
    
    class IWindow
    {
    public:
        IWindow(void)
        {
        
        }
        ~IWindow()
        {
    
        }
        virtual void CloseButton() = 0;
        virtual void ButtonClick() = 0;
    private:
    };
    
    class ProxyWindow:public IWindow
    {
    public:
        ProxyWindow(IWindow* win):proxyptr(win)
        {
            
        }
        ~ProxyWindow()
        {
    
        }
        void CloseButton()
        {
            proxyptr->CloseButton();
        }
        void ButtonClick()
        {
            proxyptr->ButtonClick();
        }
    private:
         IWindow* proxyptr;
    
    };
    
    class AWindow:public IWindow
    {
    public:
        AWindow(void)
        {
        
        }
        ~AWindow()
        {
    
        }
        void CloseButton()
        {
            std::cout << "A's closeButton" << std::endl;
        }
        void ButtonClick()
        {
            std::cout << "A's ButtonClick" << std::endl;
        }
    private:
    };
    class BWindow:public IWindow
    {
    public:
        BWindow(void)
        {
        
        }
        ~BWindow()
        {
    
        }
        void CloseButton()
        {
            std::cout << "B's closeButton" << std::endl;
        }
        void ButtonClick()
        {
            std::cout << "B's ButtonClick" << std::endl;
        }
    private:
    };

    main函数

    int main()
    {
        ProxyWindow *ptr = new ProxyWindow(new AWindow());
        ptr->ButtonClick();
        ptr->CloseButton();
        
        ProxyWindow *ptr2 = new ProxyWindow(new BWindow());
        ptr2->ButtonClick();
        ptr2->CloseButton();
    
        getchar();
    
        return 0;
    }

    输出结果:

    A's ButtonClick
    A's closeButton
    B's ButtonClick
    B's closeButton
  • 相关阅读:
    TCP/IP讲解
    Android开发的技术层次
    页面右下角弹出类似QQ或MSN的消息提示
    C# winform 自定义鼠标图标
    C#遍历指定文件夹中的所有文件
    C#操作Word
    关于数据绑定的一些小技巧
    Silverlight遍历本地文件夹
    ckeditor+ckfinder+syntaxhighlight实现上传和插入代码高亮(for .NET)
    wpf 动画效果
  • 原文地址:https://www.cnblogs.com/onlycxue/p/3457594.html
Copyright © 2011-2022 走看看