代理模式的关键是,当客户不方便直接访问一个对象或者不满足需要的时候,提供一个替身对象来控制对这个对象的访问,客户实际上访问的是替身对象.替身对象对请求做出一些处理之后,再把请求转交给本体对象. 代理模式类图: 在上面类图中,代理模式所涉及的角色有三个: 抽象主题角色(Person):声明了真实主题和代理主题的公共接口,这样一来在使用真实主题的任何地方都可以使用代理主题. 代理主题角色(Friend):代 理主题角色内部含有对真实主题的引用,从而可以操作真实主题对象:代理主题角色负责在需要的时候创…