设计模式之代理模式
前言 在生活中,我们经常遇到这样的角色:房产中介、婚介、经纪人、快递、产品代理商等,这些都是代理模式的实际体现,代理对象在客户端和目标对象其一个中介的作用。为什么出现这种模式呢,其实也是单一职责模式的体现,就像一个人,如果做一个工作就比较容易做好,如果一个人同时做多分工作,那就很难做好,容易出错。这时候就是代理模式大显身手的时候了,举一个代理商的例子,比如某公司刚生产出一批新电脑,需要销售,一般都会找很多代理商来代销售(比如某东,某猫),而不是自己去销售,因为如果找代理商来代销售只需要签订代理合同就可以了,而且可以和很多家代理商合作,这些代理商的代理点分布在全国各地,所以可以很容易的推广这个产品,代理商专注销售,生产厂商专注生产,这样就可以明确分工,合作共赢。 定义 为其他对象提供一种代理,以控制对这个对象的访问,代理模式属于结构型设计模式。 1.静态代理 先来看一下结构图(摘自《大话设计模式》) 第一步:编写需要被代理的类(RealSubject)和代理类(Proxy)的公共接口(Subject) /** * 定义了RealSubject和Proxy的公共接口,这样,在任何使用RealSubject的地方都可以用Proxy替代 */ public abstract class Subject { public abstract void request(); } 第二步