一 . 模式动机
- 在某些情况下,客户不想或不能直接引用一个对象,此时可以通过一个称之为“代理”的第三者来实现间接引用,代理对象可以在客户端和目标之间起到中介作为,并且可以通过代理对象去掉客户不能看到的内容和服务或者添加客户需要的额外服务。
二 . 模式定义
- 代理模式(Proxy Pattern):给某个对象提供一个代理,并由代理对象控制对原对象的引用。是一种对象结构模式。
三 . 模式结构
(图片来源于网络)
- Subject:抽象类
- Proxy:代理类
- RealSubject:真实角色类
四 . 模式实例
-
像生活中的中介还有明星的经纪人,明星只需要负责唱歌,那些找合作和收尾的事情全部由经纪人处理。
-
抽象类
public interface Istar {
public void sing();
}
- 代理类
public class Proxy implements Istar{
private Star star;
public Proxy(Star star){
this.star = star;
}