参考答案
如何实现静态代理(真实应用案例)
下面这段代码,怎样才能在不修改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—