今天看啥  ›  专栏  ›  御史神风

设计模式2-8:代理模式

御史神风  · 简书  ·  · 2018-09-07 22:42

What

在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。

在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。

为其他对象提供一种代理以控制对这个对象的访问。

Why

在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。

  • 职责清晰
  • 扩展性强

How

想在访问一个类时做一些控制。增加中间层。实现与被代理类组合。

抽象角色:声明真实对象和代理对象的共同接口;
代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实对象。同时,代理对象可以在执行真实对象操作时,附加其他的操作,相当于对真实对象进行封装。
真实角色:代理角色所代表的真实对象,是我们最终要引用的对象。




原文地址:访问原文地址
快照地址: 访问文章快照