用意:给某一对象提供代理对象,并由代理对象控制具体对象的引用。
角色
抽象主题角色Subject:声明了代理主题和真实主题的公共接口,使任何需要真实主题的地方都能用代理主题代替。
代理主题角色Proxy:含有真实主题的引用,从而可以再任何时候操作真实主题,代理主题和真实主题具有相同的接口,使他随时可以代替真实主题。代理主题通过持有真实主题的引用,不但可以控制真实主题的创建和删除,可以再真实主题被调用前进行拦截,或在调用后进行某些操作。
真实代理对象RealSubject:定义了代理角色所代表的具体对象。