美文网首页Head First 笔记
API装饰者模式--代理模式

API装饰者模式--代理模式

作者: 酥酥肉 | 来源:发表于2019-04-02 15:46 被阅读0次

概述

编写基于另外一组类的包装器接口,结构化设计模式可以处理接口包装任务。按照包装器层和原始接口的差异递增程度划分,它们以此是:代理、适配器和外观。

<1>代理模式

代理类和原始类拥有同样的接口,可以认为是一个单一组件包装器,

实现方式:代理类 存储 原始类的副本,但更可能是指向原始类的指针,然后代理类中的方法将重定向到原始类对象中的同名方法,

注意:将赋值构造函数和赋值操作函符声明为私有成员是为了阻止客户复制此对象


微信截图_20190402160855.png
class Proxy {
  public :
      Proxy() : mOrig(new Original()) {}
       ~Proxy(){
            delete mOrig;
      }
      
     bool DoSomething(int value) {
          return mOrig->DoSomething(value);
    }

private :
     Proxy(const Proxy &);
     const  Proxy &operator=(const Proxy &);
    Original *mOrig;
}

<1-1>代理模式

另一种方案是在此方案的基础上增加代理和原始API共享虚拟接口,目的是更好的保持这两个api同步

前提是能够修改原始API

class IOriginal {
  public:
        virtual bool DoSomething(int value) = 0;
};

class Original : public IOriginal {
  public:
  bool DoSomething(int value);
}

class Proxy : public IOriginal {
  public :
      Proxy() : mOrig(new Original()) {}
       ~Proxy(){
            delete mOrig;
      }
      
     bool DoSomething(int value) {
          return mOrig->DoSomething(value);
    }

private :
     Proxy(const Proxy &);
     const  Proxy &operator=(const Proxy &);
    Original *mOrig;
}

提示:代理提供了一个接口,此接口将函数调用转发到具有相同形式的另一个接口

试用场景

如果要修改Original类的行为但是要保持它的接口不变,代理模式非常适合,它尤其适用于Original是第三方库类,自己很难直接修改.

相关文章

  • API装饰者模式--代理模式

    概述 编写基于另外一组类的包装器接口,结构化设计模式可以处理接口包装任务。按照包装器层和原始接口的差异递增程度划分...

  • 设计模式

    单利模式 代理模式 工厂模式 装饰者模式:

  • 09.代理模式和装饰模式的区别

    代理模式和装饰模式 代理模式UML代理模式类图 装饰模式UML装饰模式类图从类图来看,二者除了名称不同,几乎没有差...

  • 设计模式--代理模式、装饰者模式和继承的区别

    一、代理模式和装饰者模式还记得装饰者模式那个开咖啡店的例子吗?装饰者类图: 同样开咖啡店,使用代理模式,那么类图是...

  • 设计模式

    1.代理模式 静态代理; 动态代理: 2.工厂模式 3.装饰模式 4.观察者模式

  • 常用设计模式 2018-09-15

    目录 代理模式 单例模式 命令模式 工厂模式 桥接模式 策略模式 装饰模式 观察者模式 门面模式 代理模式 静态代...

  • java中的代理模式与装饰者模式的区别

    java中的代理模式与装饰者模式的区别 代理模式与装饰者模式看起来很像,都实现基础对象实现的接口,在其自身对象中都...

  • 装饰者模式

    装饰者模式 符合开放关闭原则 装饰者模式和代理模式非常像,代理模式更加强调的是一种静态的关系,即一开始就确定了代理...

  • 设计模式--代理模式

    目录 本文的结构如下: 引言 什么是代理模式 模式的结构 典型代码 代理模式分类 代码示例 代理模式和装饰者模式的...

  • 设计模式[8]-代理模式-Proxy Pattern

    1. 代理模式 代理模式(Proxy Pattern)是常用的结构性设计模式,和装饰者模式非常相似,代理类和被代理...

网友评论

    本文标题:API装饰者模式--代理模式

    本文链接:https://www.haomeiwen.com/subject/pvmbbqtx.html