设计模式(十一):代理模式
优点:
① 将代理对象和真实被调用的目标对象分离,降低了耦合度,提高了扩展性。
② 保护和增强目标对象。
缺点:
① 增加了代理类,请求速度变慢,增加系统复杂性。
适用范围:
① 安全代理,用来控制真实对象的访问权限。
② 智能代理,调用真实对象时,代理处理另外一些事。
③ 虚拟代理,根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。
④远程代理,为一个对象在不同的地址空间提供局部代表。可以隐藏一个对象在不同地址空间的事实。
客户端:
String schoolGirl = "jiaojiao";
Proxy daili = new Proxy(schoolGirl); //创建代理
daili.giveFlowers(); // 原赠送人方法
daili.giveChocolate(); // 原赠送人方法
daili.say(); // 代理独有的新增方法
/** * GiveGift (接口,送礼物方法) * Pursuer(赠送人,实现GiveGift接口) * * Proxy(代理人,实现GiveGift接口的所有方法,且有自己独特的方法) */