【设计模式】结构型模式之代理模式

 

1.模式动机与定义

代理模式定义:为其他对象提供一种代理以控制对象的访问。

2.模式结构与分析

代理模式类图

/**  * 定义了RealSubject和Proxy的共同接口,使得在任何使用RealSubject的地方都可以使用Proxy  */ public interface Subject { ​     void request(); }
/**  * 定义了Proxy所代表的真正实体  */ public class RealSubject implements Subject { ​     @Override     public void request() {         System.out.println("RealSubject invoke request() method");     } }
/**  * 持有真实实体RealSubject的引用,使得Proxy可以访问真实实体  * 并实现了Subject接口,这样代理就可以代替真实实体  */ public class Proxy implements Subject{ ​     private RealSubject subject; ​     public Proxy() {         this.subject = new RealSubject();     } ​     @Override     public void request() {         this.subject.request();     } }
public class Client { ​     public static void main(String[] args) {         Subject proxy = new Proxy();         proxy.request();     } }
RealSubject invoke request() method

3.模式实例与解析

模式实例:
学校里男同学A想要女同学B做自己的女朋友,想送女同学B礼物来追求女同学B,但是自己不好意思直接送,于是委托中间人来帮自己送礼物。

/**  * 校园中的漂亮女同学  */ public class SchoolGirl { ​     private String name; ​     public SchoolGirl(String name) {         this.name = name;     } ​     public String getName() {         return name;     } ​     public void setName(String name) {         this.name = name;     } }

GiveGift接口对应于代理模式类图中的Subject。


                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信