代理模式

设计模式的意义在于:面向业务内容、业务数据结构和系统架构,高内聚低耦合、优雅的将平面逻辑立体化。

 1 package designPattern;
 2 
 3 /**
 4  * 代理模式
 5  * @author Administrator
 6  */
 7 public class C21_ProxyTest {
 8 
 9     /**
10      *  为其他对象提供一种代理以控制对这个对象的访问
11      *  适用于:
12      *  1.远程代理(RemoteProxy)为一个对象在不同的地址空间提供局部代表。
13      *     2.虚代理(VirtualProxy)根据需要创建开销很大的对象。
14      *     3.保护代理(ProtectionProxy)控制对原始对象的访问。
15      *     4.智能指引(SmartReference)取代了简单的指针,它在访问对象时执行一些附加操作
16      */
17     public static void main(String[] args) {
18         ProxyObj po=new ProxyObj();
19         po.action();
20     }
21 }
22 /**
23  * 1.Proxy 保存一个引用使得代理可以访问实体。若RealSubject和Subject的接口相同,Proxy会引用Subject。
24  *提供一个与Subject的接口相同的接口,这样代理就可以用来替代实体。控制对实体的存取,并可能负责创建和删除它。
25  *其他功能依赖于代理的类型:
26  */
27 class ProxyObj implements Obj
28 {
29     Obj o;
30     public ProxyObj()
31     {
32         System.out.println("这是代理类!");
33         o=new ObjImpl();
34     }
35     public void action()
36     {
37         System.out.println("开始代理...");
38         o.action();
39         System.out.println("代理结束...");
40     }
41 }
42 
43 //2.Subject 定义RealSubject和Proxy的共用接口,这样就在任何使用RealSubject的地方都可以使用Proxy。
44 interface Obj
45 {
46     void action();
47 }
48 //3.RealSubject 定义Proxy所代表的实体。
49 class ObjImpl implements Obj
50 {
51     public void action()
52     {
53         System.out.println("这是被代理的类....");
54     }
55 }

 

环境:JDK1.6,MAVEN,tomcat,eclipse

源码地址:https://files.cnblogs.com/files/xiluhua/designPattern.rar

欢迎亲们评论指教。

posted @ 2015-04-10 10:17  xiluhua  阅读(181)  评论(0编辑  收藏  举报