吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 980|回复: 0
收起左侧

[讨论] proxy模式

[复制链接]
古月不傲 发表于 2020-11-16 12:50
本帖最后由 古月不傲 于 2020-11-16 12:52 编辑

[C++] 纯文本查看 复制代码
#include <iostream>
#include <arpa/inet.h>
#include <sys/socket.h>

using namespace std;

// proxy模式
namespace proxy_pattern
{
// 访问服务
class abstract_access_service
{
public:
    virtual void access_web(sockaddr &addr) = 0;
    virtual ~abstract_access_service() {}
};

// 访问油管
class access_youtube : public abstract_access_service
{
public:
    virtual void access_web(sockaddr &addr) override {
        printf("访问油管\n");
    }
};

// proxy
class proxy : public abstract_access_service
{
public:
    proxy(abstract_access_service *ab) : m_ab(ab) {}
    virtual void access_web(sockaddr &addr) override {
        // can do something;
        this->m_ab->access_web(addr);
        // can do something;
    }
private:
    abstract_access_service *m_ab;
};
}

// 可以看出proxy模式和策略模式的区别 proxy模式需要继承 策略不需要继承 因此细节处理就不用
// proxy模式最大的作用就是解耦合 中途可以改变一些行为 而不必修改真实的类
int main(void)
{
    using namespace proxy_pattern;
    abstract_access_service *youtube = new access_youtube;
    abstract_access_service *p = new proxy(youtube);
    sockaddr addr;
    p->access_web(addr);

    delete p;
    delete youtube;

    return 0;
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 11:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表