Java代理设计模式代码示例
时间: 2024-02-23 08:39:04 浏览: 101
好的,以下是一个Java代理设计模式的代码示例:
//定义一个接口
public interface IUserDao {
void save();
}
//被代理对象
public class UserDao implements IUserDao {
@Override
public void save() {
System.out.println("保存用户信息");
}
}
//代理对象
public class UserDaoProxy implements IUserDao {
private IUserDao target;
public UserDaoProxy(IUserDao target) {
this.target = target;
}
@Override
public void save() {
System.out.println("开始事务");
target.save();
System.out.println("结束事务");
}
}
//测试类
public class Test {
public static void main(String[] args) {
IUserDao userDao = new UserDao();
UserDaoProxy proxy = new UserDaoProxy(userDao);
proxy.save();
}
}
这段代码实现了代理的核心逻辑,它可以在不改变原有类的基础上,给原有类增加新的功能。在这个例子中,UserDao类是被代理类,UserDaoProxy则是代理类。代理类拥有被代理类的接口实例,可以在该接口实例上进行额外操作,比如在保存用户信息前后添加事务处理的逻辑。
阅读全文