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

    C++中代理模式也称为Proxy模式,是构造性的设计模式之一,它可以为其他对象提供一种代理,以控制对这个对象的访问。、

    所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后)完成某些特别的处理。

    代理模式一般会有以下三个角色:

    1、抽象角色:指代理角色和真实角色对外提供的公共方法,一般为一个接口。

    2、真实角色:需要实现抽象角色接口,定义了真实角色所要实现的业务逻辑,以便供代理角色调用,也就是真正的业务逻辑。

    3、代理角色:需要实现抽象角色接口,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作,将统一的流程控制都放到代理角色中处理。
    Proxy1.cpp(为经模式更改前的代码)

    class ISubject{
    public:
        virtual void process();
    };
    
    class RealSubject :public ISubject{
    public:
        virtual void process(){
            //...
        }
    };
    
    class ClientApp{
        ISubject* subject;
    public:
        ClientApp(){
            subject = new RealSubject();
        }
    
        void DoTask(){
            //...
            subject->process();
    
            //...
        }
    };

    Proxy2.cpp(代理模式更改后的代码)

    class ISubject{
    public:
        virtual void process();
    };
    
    class SubjectProxy :public ISubject{
    public:
        virtual void process(){
            //对RealSunject的一种调用
            //...
        }
    };
    
    class ClientApp{
        ISubject* subject;
    public:
        ClientApp(){
            subject = new SubjectProxy();
        }
    
        void DoTask(){
            //...
            subject->process();
    
            //...
        }
    };

  • 相关阅读:
    css常用属性
    html常用标签
    通讯录管理
    消息推送
    企业微信API开发前准备
    毕业设计-基于图像处理的垃圾分类系统2020.03.17
    毕业设计-基于图像处理的垃圾分类系统2020.03.15
    毕业设计-基于图像处理的垃圾分类系统2020.03.14
    毕业设计-基于图像处理的垃圾分类系统2020.03.13
    毕业设计-基于图像处理的垃圾分类系统2020.03.12
  • 原文地址:https://www.cnblogs.com/zhuifeng-mayi/p/11064389.html
Copyright © 2011-2022 走看看