参考答案
如何实现静态代理(真实应用案例)
下面这段代码,怎样才能在不修改UserDao接口类的情况下开事务、关闭事务。
实例:
package com.lijie;
//接口类
public class UserDao{
public void save() {
System.out.println("保存数据方法");
}
}
package com.lijie;
//运行测试类
public class Test{
public static void main(String[] args) {
UserDao userDao = new UserDao();
userDao.save();
}
}
修改代码,添加代理类:
package com.lijie;
//代理类
public class UserDaoProxy extends UserDao {
private UserDao userDao;
public UserDaoProxy(UserDao userDao) {
this.userDao = userDao;
}
public void save() {
System.out.println("开启事物...");
userDao.save();
System.out.println("关闭事物...");
}
}
//添加完静态代理的测试类
public class Test{
public static void main(String[] args) {
UserDao userDao = new UserDao();
UserDaoProxy userDaoProxy = new UserDaoProxy(userDao);
userDaoProxy.save();
}
}
- 缺点:每个需要代理的对象,都要自己重复编写代理。
- 优点:但是可以面相实际对象或者是接口的方式实现代理。
以上,是Java面试题【如何实现静态代理(真实应用案例)】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—
