前言
代理模式(英语:Proxy Pattern)是程序设计中的一种设计模式。
所谓的代理者是指一个类别可以作为其它东西的接口。代理者可以作任何东西的接口:网上连接、存储器中的大对象、文件或其它昂贵或无法复制的资源。
代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
在Java中,存在以下三种代理模式:
静态代理
在使用静态代理时,被代理对象与代理对象需要一起实现相同的接口或者是继承相同父类,因此要定义一个接口或抽象类.
代理类:
/*
* 静态代理实现
*
* 代理类
*/
public class DemoDAOProxy implements IDemoDAO{
// 被代理的目标对象
private DemoDAOImpl target = new DemoDAOImpl();
@Override
public int executeInsert() {
long beginTime = System.currentTimeMillis();
System.out.println("[增强功能]:executeInsert方法于" + new Date()+"开始执行....");
// 调用被代理对象(target)
int rows = target.executeInsert();
long endTime = System.currentTimeMillis();
System.out.println("[增强功能]:executeInsert方法于" + new Date()+"结束执行!!!!");
System.out.println("[增强功能]:共耗时" + (endTime - beginTime) + "毫秒!");
return rows;
}
@Override
public int executeUpdate() {
long beginTime = System.currentTimeMillis();
System.out.println