设计模式之代理模式
来源:互联网 发布:开淘宝店方案 编辑:程序博客网 时间:2024/06/05 02:57
模式定义:
模式结构:
代码模式.png
不画图了,就是 一个接口,两个实现A,B。A是代理证,B是真正实现,,A内有一个B的引用。在调用A时,其实是调用B。和适配器模式差不多,只不过这个父类相同。
不画图了,就是 一个接口,两个实现A,B。A是代理证,B是真正实现,,A内有一个B的引用。在调用A时,其实是调用B。和适配器模式差不多,只不过这个父类相同。
模式实现:
public class ProxyPattern { @Test public void testProxy() { Proxy proxy = new Proxy(); proxy.sell("lv"); proxy.sell("gun"); proxy.sell("iPhone8"); } /** * 商家接口 */ interface ISeller { void sell(String name); } /** * 香港某个商城 */ class HongKong implements ISeller { @Override public void sell(String name) { System.out.println("sell " + name); } } /** * 代购 */ class Proxy implements ISeller { private ISeller iSeller; public Proxy() { iSeller = new HongKong(); } @Override public void sell(String name) { if ("iPhone8".equals(name)) { System.out.println("no this"); } else if ("gun".equals(name)) { System.out.println("no permission"); } else { iSeller.sell(name); } } }}
模式优点:
1、代理模式能够协调调用者和被调用者,在一定程度上降低了系统的耦合度
2、代理对象可以在客户端和目标对象之间起到中介的作用,起到了保护目标对象的作用
模式缺点:
1、由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢
2、实现代理模式需要额外的工作,有些代理模式的实现非常复杂
适用场景:
1、远程代理:为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实
2、虚拟代理:通过使用过一个小的对象代理一个大对象。这样就可以减少系统的开销
3、保护代理:用来控制对真实对象的访问权限
阅读全文
0 0
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之-代理模式
- 设计模式之 代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之-----代理模式
- 设计模式之代理模式
- 设计模式之-代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 操作系统(Operating System)4
- oracle sql%found sql%notfound和sql%rowcount
- C++之Vector用法
- Android 设置文件后缀名及限制文件的大小获取手机文件
- MySQL的语句执行顺序
- 设计模式之代理模式
- java判断字符串是否包含汉字
- Centos-docker使用
- Hadoop Shuffle运行原理
- Spring In Action<四>
- stm32的IIC知识点
- 单例模式
- golang初探
- Java 经典问题