设计模式之四 代理模式

 1 /**
2 * 文件名:Proxy.java
3 *
4 * 版本信息:
5 * 日期:2011-12-13
6 * Copyright 陈亚坤 Corporation 2011
7 * 版权所有
8 *
9 */
10 package byME;
11
12 /**
13 *
14 * 项目名称:Design Pattern 类名称:Proxy 类描述:代理模式,为其他对象提供一种代理以控制对这个对象的访问。 创建人:chenyakun
15 * 创建时间:2011-12-13 上午10:28:59 修改人:chenyakun 修改时间:2011-12-13 上午10:28:59 修改备注:
16 *
17 * @version
18 *
19 */
20 // Subject类,定义了RealSubject和Proxy的共用接口,这样就在任何使用RealSubject的地方都可以用Proxy代理。
21 abstract class Subject {
22
23 public abstract void Request();
24 }
25
26 // RealSubject类,定义Proxy所代表的真实实体。
27 class RealSubject extends Subject {
28
29 @Override
30 public void Request() {
31 System.out.println("真实的请求");
32 }
33
34 }
35
36 // Proxy类,保存一个引用,使得代理可访问实体,并且提供一个与Subject相同的接口,这样Proxy就可以完全代替实体。
37 class Proxy extends Subject {
38
39 RealSubject realSubject; //真正的实体
40
41 @Override
42 public void Request() {
43 if (realSubject == null) {
44
45 realSubject = new RealSubject();
46 }
47 realSubject.Request();
48
49 }
50
51 }
52
53 class ProxyClient {
54
55 public static void mian(String[] args) {
56
57 Proxy proxy = new Proxy();
58 proxy.Request();
59 }
60 }
61 /*
62 * 代理用在什么地方:
63 *
64 * 远程代理,为一个对象在不同的地址空间提供局部代表。
65 * 虚拟代理,根据需要创建开销很大的对象。通过它来存放实例化很长时间的真是对象。
66 * 安全代理,控制真实对象的访问权限。
67 */
原文地址:https://www.cnblogs.com/yakun/p/2286770.html