[size=large][align=left]一、代理[/align][/size]
所谓代理,就是一个人或者一个机构,代替另一个人或者机构做一件事。相当于windows中的快捷方式。
代理模式的结构:
1、 抽象主题角色:包含了代理主题与真实主题之间共同的接口。
2、 代理主题角色:含有对真实主题角色的引用代理角色,它在处理客户端调用真实主题角色时,可以在返回真实主题之前或者之后加一一些处理方法,而不仅仅是只返回一个对真实主题的引用。
3、 真实主题角色:定义了代理角色代理的真实对象。
代理模式这个就可以使在对真实对象执行时,可以进行别的特别的处理,然后提供给客户端。
[align=left][size=large]二、动态代理[/size][/align]
所谓代理,就是一个人或者一个机构,代替另一个人或者机构做一件事。相当于windows中的快捷方式。
代理模式的结构:
1、 抽象主题角色:包含了代理主题与真实主题之间共同的接口。
2、 代理主题角色:含有对真实主题角色的引用代理角色,它在处理客户端调用真实主题角色时,可以在返回真实主题之前或者之后加一一些处理方法,而不仅仅是只返回一个对真实主题的引用。
3、 真实主题角色:定义了代理角色代理的真实对象。
//抽象主题接口
public interface Subject {
public void request();
}
//真实对象主题类
public class RealSubject implements Subject {
public void request() {
System.out.println("处理真实主题.....");
}
}
//代理对象主题类
public class ProxySubject implements Subject {
// 对真实对象一个引用
private RealSubject real;
// 处理真实对象的方法
public void request() {
this.preRequest();
// 执行真实对象中的方法
real = new RealSubject();
real.request();
this.postRequest();
}
// 设计一个方法在真实对象之间执行
public void preRequest() {
System.out.println("执行在真实对象开始之前....");
}
// 设计一个方法在真实对象之后执行
public void postRequest() {
System.out.println("执行在真实对象开始之后.....");
}
}
//测试类
public class Test {
public static void main(String[] args) {
Subject proxy = new ProxySubject();
proxy.request();
}
}
代理模式这个就可以使在对真实对象执行时,可以进行别的特别的处理,然后提供给客户端。
[align=left][size=large]二、动态代理[/size][/align]